DATETIME được sử dụng để lưu trữ giá trị của cả ngày và giờ. Theo mặc định, các giá trị DATETIME nằm trong khoảng từ 1000-01-01 00. 00. 00 đến 9999-12-31 23. 59. 59. Nó sử dụng 5 byte để lưu trữ
Cú pháp cho định dạng DATETIME
Các loại NGÀY và GIỜ của MySQL
Có một số hàm ngày và giờ hữu ích trong MySQL. Tôi đã thấy quá nhiều ứng dụng thực hiện tính toán ngày tháng ở cấp độ mã trong khi điều tương tự có thể được thực hiện bằng cách sử dụng các hàm MySQL tích hợp. Tuy nhiên, trước khi chúng tôi khởi chạy các chức năng, hãy làm mới bộ nhớ của chúng tôi và xem loại ngày và giờ nào có sẵn cho MySQL
MySQL khá khoan dung trong cách đọc các định dạng ngày tháng. Mặc dù sử dụng quy ước là khôn ngoan, nhưng bạn có thể sử dụng bất kỳ ký tự dấu câu nào khác mà bạn thích. Ví dụ: bây giờ hãy tạo một bảng và chèn dữ liệu giả như sau
- TẠO BẢNG vatsa(Dt DATETIME);
Bây giờ, chèn dữ liệu theo đúng định dạng như sau
- CHÈN VÀO VATSA(Dt) GIÁ TRỊ('2020-09-14 23. 18. 17');
Thay vì định dạng phù hợp, bạn có thể sử dụng các dấu '=' và '+', như sau
- CHÈN VÀO vatsa(Dt) VALUES('2020=09=14 23*18*21');
Nhưng mặc dù tôi chắc chắn rằng chúng tồn tại, nhưng tôi không tìm thấy lý do chính đáng nào để sử dụng cái này, vì vậy tôi khuyên bạn nên tuân thủ các quy ước trừ khi thực sự cần thiết
Bây giờ, thực hiện truy vấn sau để xem kết quả
TÍNH TOÁN NGÀY VÀ GIỜ ĐƠN GIẢN
Tính toán ngày tương đối dễ dàng. Hàm đầu tiên chúng ta sẽ xem xét là hàm YEAR(), trả về một năm kể từ một ngày nhất định. Để lấy giá trị của năm, tháng, tuần, ngày, quý, ngày, giờ, giờ, phút và giây từ một giá trị DATETIME, bạn sử dụng các hàm như minh họa trong câu lệnh sau
- CHỌN NĂM('2020-09-14 23. 18. 17') NHƯ Năm,
- Tháng('2020-09-14 23. 18. 17') NHƯ Tháng,
- Ngày('2020-09-14 23. 18. 17') AS Ngày,
- Giờ('2020-09-14 23. 18. 17') AS Giờ,
- Phút('2020-09-14 23. 18. 17') TỚI Phút,
- Thứ hai('2020-09-14 23. 18. 17') NHƯ Nhì,
- Ngày('2020-09-14 23. 18. 17') NHƯ Ngày,
- Thời gian('2020-09-14 23. 18. 17') AS Thời gian,
- Quý('2020-09-14 23. 18. 17') AS Hiệp;
Ngoài ra, người dùng có thể sử dụng một phương thức động để lấy ngày và giờ của ngày giờ hiện tại
- SET @vatsaDATETIME = NOW();
- CHỌN NĂM(@vatsaDATETIME) Làm Năm,
- Tháng(@vatsaDATETIME) AS Tháng,
- Ngày(@vatsaDATETIME) NHƯ Ngày,
- Giờ(@vatsaDATETIME) AS Giờ,
- Phút(@vatsaDATETIME) AS Phút,
- Thứ hai(@vatsaDATETIME) NHƯ thứ hai,
- Ngày(@vatsaDATETIME) AS Ngày,
- Thời gian(@vatsaDATETIME) AS Thời gian,
- Quý(@vatsaDATETIME) AS Quý;
CÁC PHÉP TOÁN SỐ HỌC CƠ BẢN TRÊN HÀM NGÀY
Chúng ta có thể thực hiện các phép toán số học đơn giản về ngày tháng bằng cách sử dụng các toán tử '+' và '-'. Hãy cho chúng tôi xem một số ví dụ cơ bản
1) Để biết năm nào trước một ngày nhất định 5 năm, bạn có thể sử dụng
- SET @vatsa = ngay();
- CHỌN @vatsa + 5;
2) Để biết năm năm trước là năm nào, hãy sử dụng
- SET @vatsa = ngay();
- CHỌN @vatsa – 5;
Bây giờ, hãy thảo luận về một ví dụ thời gian thực cơ bản
- SET @vatsa = ngay();
- CHỌN @vatsa - 5 NHƯ TRƯỚC,
- năm(@vatsa) NHƯ HIỆN TẠI,
- @vatsa + 5 NHƯ TƯƠNG LAI;
Tất nhiên, bạn không cần phải mã hóa ngày tháng. MySQL khá có khả năng cho biết ngày và giờ, sử dụng hàm NOW(). Và, khi thực thi câu lệnh này, nó sẽ trả về ngày và giờ hiện tại
Hoặc chỉ ngày với hàm CURRENT_DATE(). Và, khi thực thi câu lệnh này, nó sẽ trả về ngày hiện tại
MySQL DATETIME so với DẤU THỜI GIAN
TIMESTAMP tương tự như DATETIME trong MySQL. DẤU THỜI GIAN yêu cầu 4 byte nhưng DATETIME yêu cầu 5 byte
Cột DẤU THỜI GIAN lưu trữ đầy đủ 14 ký tự, nhưng bạn có thể hiển thị theo nhiều cách khác nhau. Ví dụ: nếu bạn xác định cột là DẤU THỜI GIAN(2), thì chỉ năm có hai chữ số sẽ được hiển thị nhưng toàn bộ giá trị được lưu trữ. Nếu sau này bạn quyết định hiển thị giá trị đầy đủ, bạn có thể thay đổi định nghĩa bảng và giá trị đầy đủ sẽ xuất hiện
Dưới đây là danh sách các cách khác nhau để xác định DẤU THỜI GIAN và kết quả hiển thị
Trong bài viết này, tôi đã thảo luận về khái niệm hàm DATE và TIME trong MySQL với nhiều ví dụ khác nhau