Kiểu dữ liệu thời gian và sự khác biệt chính của data type datetime với timestamp
Về mặt ý nghĩa thì đây đều là trường để lưu kiểu dữ liệu ngày tháng, thời gian. Còn mục đích sử dụng thì có thể tóm tắt như sau:
1. TIMESTAMP và DATETIME
TIMESTAMP được sử dụng để theo dõi các thay đổi đối với các bản ghi và cập nhật mỗi khi bản ghi được thay đổi.
DATETIME được sử dụng để lưu trữ giá trị cụ thể và tĩnh không bị ảnh hưởng bởi bất kỳ thay đổi nào.
TIMESTAMP chịu ảnh hưởng bởi các cài đặt liên quan đến TIME ZONE.
DATETIME thì không chịu ảnh hưởng bởi các cài đặt liên quan đến TIME ZONE.
Giá trị giới hạn lưu dữ liệu kiểu TIMESTAMP: ‘1970-01-01 00:00:01 UTC đến’ 2038-01-19 03:14:07
Giá trị giới hạn lưu dữ liệu kiểu DATETIME: ‘1000-01-01 00:00:00 đến’ 9999-12-31 23:59:59
Ví dụ, nếu bạn đang ở Việt Nam, giả sử bạn insert dữ liệu vào column type timestamp có giá trị 1970-01-01 00:00:01 thì sẽ nhận được thông báo lỗi ngoài phạm vi lưu dữ liệu, lý do là ở Việt Nam chúng ta có múi giờ UTC +7:00, nên nếu bạn lưu với dữ liệu có giá trị 1970-01-01 07:00:01 thì sẽ thành công.
Với DATETIME thì phạm vi lưu dữ liệu rộng lớn hơn nhiều nên hay được sử dụng.
2. DATE, TIME
DATE: Data type này chỉ lưu dạng ngày mà không có thời gian, format YYYY-MM-DD. Phạm vi mà giá trị dữ liệu lưu được nằm trong giới hạn 1000-01-01 tới 9999-12-31.
TIME: Giá trị lưu giờ phút giây với format HH:MM:SS (hoặc HHH:MM:SS). TIME values nằm trong giới hạn -838:59:59 to 838:59:59. Đây không phải kiểu dữ liệu lưu theo ngày nên giá trị không nhất thiết phải nằm trong vòng 24h, chúng ta có thể lưu giá trị ví dụ như: 25:24:59(25hours 24minutes 59 seconds).
Bình luận