Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tại sao chuyển đổi ngày '1965-05-15' sang TIMESTAMP ra 0 trong MySQL?

Hàm UNIX_TIMESTAMP() chuyển ngày/giờ thành số giây từ epoch. Nhưng kiểu TIMESTAMP chỉ hỗ trợ phạm vi '1970-01-01 00:00:01' đến '2038-01-19 08:44:07'.

Ngày '1965-05-15' nằm ngoài phạm vi nên MySQL trả về 0.

Ví dụ

mysql> SELECT UNIX_TIMESTAMP('1965-05-15');
+----------------------------------------------+
| unix_timestamp('1965-05-15 05:04:30')        |
+----------------------------------------------+
| 0                                            |
+----------------------------------------------+

mysql> SELECT UNIX_TIMESTAMP('1970-05-15 05:04:30');
+----------------------------------------------+
| unix_timestamp('1970-05-15 05:04:30')        |
+----------------------------------------------+
| 11576070                                     |
+----------------------------------------------+

Ngày trước 1970 hoặc sau 2038 đều trả về 0 khi dùng UNIX_TIMESTAMP.