Như những người khác đã nói, dấu thời gian có thể đại diện cho phạm vi thời gian biểu nhỏ hơn (từ 1970 đến 2038). Tuy nhiên, dấu thời gian đo số giây kể từ Thời đại Unix (1970-01-01 00:00:00 UTC), do đó làm cho chúng độc lập với múi giờ, trong khi DATETIME lưu trữ ngày và giờ mà không có múi giờ. Nói cách khác, dấu thời gian rõ ràng tham chiếu một điểm cụ thể trong thời gian, trong khi điểm chính xác trong thời gian DATETIME đề cập đến yêu cầu múi giờ (không được lưu trữ trong trường DATETIME). Để xem lý do tại sao điều này có thể quan trọng, hãy xem xét điều gì sẽ xảy ra nếu chúng tôi thay đổi múi giờ của mình.
Giả sử chúng tôi muốn lưu trữ ngày giờ 2010-03-27 12:00 UTC. Nếu chúng ta lưu trữ và lấy nó bằng cách sử dụng một dấu thời gian hoặc DATETIME, thì thường có vẻ không có sự khác biệt. Tuy nhiên, nếu máy chủ hiện thay đổi để múi giờ địa phương là UTC + 01, thì chúng tôi sẽ nhận được hai kết quả khác nhau nếu chúng tôi lấy ra ngày giờ.
Nếu chúng ta đặt trường thành DATETIME, nó sẽ báo cáo ngày giờ là 2010-03-27 12:00, mặc dù thay đổi múi giờ. Nếu chúng ta đặt trường thành dấu thời gian, ngày sẽ được báo cáo là 2010-03-27 11:00. Đây không phải là vấn đề với một trong hai kiểu dữ liệu - nó chỉ là kết quả của việc chúng lưu trữ thông tin hơi khác nhau.
Nguồn
2010-03-28 17:32:40
Tương tự: http://stackoverflow.com/questions/409286/datetime-vs-timestamp –