Các dữ liệu khác có thể đơn giản, nhưng đối với kiểu ngày, giờ sẽ có nhiều khó khăn cho người mới dùng nó. Vì vậy cafedev chia sẻ cho ace một số kiến thức và kinh nghiệm khi làm việc với kiểu này.
Nội dung chính
1. Date trong SQL
Phần khó khăn nhất khi làm việc với ngày tháng là đảm bảo rằng định dạng của ngày bạn đang cố gắng chèn khớp với định dạng của cột ngày tháng trong cơ sở dữ liệu.
Miễn là dữ liệu của bạn chỉ chứa phần ngày tháng, các truy vấn của bạn sẽ hoạt động như mong đợi. Tuy nhiên, nếu liên quan đến một phần thời gian, nó sẽ phức tạp hơn.
2. Các kiểu Date trong SQL
MySQL đi kèm với các kiểu dữ liệu sau để lưu trữ ngày hoặc giá trị ngày / giờ trong cơ sở dữ liệu:
- DATE – format YYYY-MM-DD
- DATETIME – format: YYYY-MM-DD HH:MI:SS
- TIMESTAMP – format: YYYY-MM-DD HH:MI:SS
- YEAR – format YYYY or YY
SQL Server đi kèm với các kiểu dữ liệu sau để lưu trữ ngày hoặc giá trị ngày / giờ trong cơ sở dữ liệu:
- DATE – format YYYY-MM-DD
- DATETIME – format: YYYY-MM-DD HH:MI:SS
- SMALLDATETIME – format: YYYY-MM-DD HH:MI:SS
- TIMESTAMP – format: là một con số duy nhất
Lưu ý: Các loại ngày được chọn cho một cột khi bạn tạo một bảng mới trong cơ sở dữ liệu của mình!
3. Ví dụ
Bạn có thể so sánh hai ngày một cách dễ dàng nếu không có thành phần thời gian liên quan!
Bảng Order:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Cơm | 2020-11-11 |
2 | Bánh mỳ | 2020-11-09 |
3 | Thịt gà chiên | 2018-11-11 |
4 | Bánh tráng | 2017-10-29 |
Bây giờ chúng ta muốn chọn các bản ghi có OrderDate là “2020-11-11” từ bảng trên.
Chúng tôi sử dụng câu lệnh SELECT sau:
SELECT * FROM Orders WHERE OrderDate='2020-11-11'
Mẹo: Để giữ cho các truy vấn của bạn đơn giản và dễ bảo trì, không cho phép các thành phần thời gian trong ngày tháng của bạn!
Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!