Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เหตุใดฉันจึงได้รับเอาต์พุต 0 (ศูนย์) ในวันที่แปลงเช่น '1965-05-15' เป็น TIMESTAMP


ดังที่เราทราบดีว่าด้วยความช่วยเหลือของฟังก์ชัน MySQL UNIX_TIMESTAMP เราจึงสามารถสร้างจำนวนวินาทีจากวันที่/วันที่และเวลาที่กำหนดได้ แต่เมื่อเราพยายามแปลงวันที่เช่น '1965-05-15' มันจะให้ 0(ศูนย์) เป็นเอาต์พุตเนื่องจากช่วงของ TIMESTAMP อยู่ระหว่าง '1970-01-01 00:00:01' ถึง '2038-01- 19 08:44:07'. ดังนั้น ค่าวันที่ที่เกินช่วง TIMESTAMP จะไม่สามารถแปลงได้ และจะคืนค่า 0 เป็นเอาต์พุตเสมอ

ตัวอย่างได้รับด้านล่าง −

mysql> Select UNIX_TIMESTAMP ('1965-05-15');
+----------------------------------------------+
| unix_timestamp('1965-05-15 05:04:30')        |
+----------------------------------------------+
|                                       0      |
+----------------------------------------------+
1 row in set (0.00 sec)

mysql> select UNIX_TIMESTAMP ('1970-05-15 05:04:30');
+----------------------------------------------+
| unix_timestamp('1970-05-15 05:04:30')        |
+----------------------------------------------+
|                                     11576070 |
+----------------------------------------------+
1 row in set (0.00 sec)