1. Kiểu dữ liệu DATE

Kiểu dữ liệu DATE là kiểu dữ liệu được sử dụng để lưu trữ các giá trị thời gian như ngày, tháng, năm. Để làm việc được với kiểu dữ liệu DATE ta cần đảm bảo rằng định dạng của ngày chèn khớp với định dạng của cột ngày tháng trong cơ sở dữ liệu.

Trong SQL có một số kiểu dữ liệu cho các dữ liệu thời gian như:

  • DATE – định dạng YYYY-MM-DD (năm-tháng-ngày)
  • DATETIME – định dạng: YYYY-MM-DD HH: MI: SS (năm-tháng-ngày giờ: phút: giây)
  • SMALLDATETIME – định dạng: YYYY-MM-DD HH: MI: SS
  • TIMESTAMP – định dạng: một số duy nhất

2. Làm việc với kiểu DATE

Trong ví dụ này, tôi sẽ tạo ra bảng có tên là DatHang bao gồm các cột ID, TenHang, NgayBan trong đó cột NgayBan sẽ lưu trữ các giá trị thời gian mà sản phẩm được bán. Thời gian ở đây là năm-tháng-ngày. Chúng ta cần viết câu lệnh tạo bảng như sau:

CREATE TABLE DatHang(
    ID int PRIMARY KEY,
    TenHang varchar(25) NOT NULL,
    NgayBan DATE,
);

Ta sẽ thêm vào cơ sở dữ liệu trên một số bản ghi bằng câu lệnh INSERT như sau:

INSERT INTO DatHang (ID, TenHang, NgayBan) VALUES 
    (1, N'Hàng Hóa A', '2021-2-7'),
    (2, N'Hàng Hóa B', '2021-9-8'),
    (3, N'Hàng Hóa C', '2021-2-26'),
    (4, N'Hàng Hóa D', '2021-2-7');

Sau khi INSERT dữ liệu, bảng DatHang sẽ như sau:

ID TenHang NgayBan
1 Hàng Hóa A 2021-2-7
2 Hàng Hóa B 2021-9-8
3 Hàng Hóa C 2021-2-26
4 Hàng Hóa D 2021-2-7

Giả sử bây giờ chúng ta muốn chọn các bản ghi có NgayBan là “2021-2-7” từ bảng trên. Ta sẽ sử dụng câu lệnh SELECT như sau:

SELECT * FROM DatHang WHERE NgayBan='2021-2-7';

Sau khi câu truy vấn trên được thực thi, kết quả sẽ như sau:

ID TenHang NgayBan
1 Hàng Hóa A 2021-2-7
4 Hàng Hóa D 2021-2-7

Như vậy, ta hoàn toàn có thể sử dụng kiểu dữ liệu DATE cho việc truy vấn, tạo bảng hay một số thao tác về kiểm tra điều kiện trong câu lệnh SELECT. Miễn là dữ liệu của bạn chỉ chứa phần ngày tháng năm thì các truy vấn của bạn sẽ hoạt động như mong đợi. Tuy nhiên, nếu có liên quan đến một phần thời gian giờ phút giây, nó sẽ phức tạp hơn.