我不知道爲什麼你讓事情變得如此複雜。只需除以1000即可得到秒數而不是微秒,並從1970-01-01減去。
mysql > select '1970-01-01' + interval -866138400000/1000 second;
+---------------------------------------------------+
| '1970-01-01' + interval -866138400000/1000 second |
+---------------------------------------------------+
| 1942-07-22 06:00:00 |
+---------------------------------------------------+
1 row in set (0.00 sec)
所以您的查詢實際上是當然這樣的:
select '1970-01-01' + interval your_column/1000 second from your_table;
這個查詢證明,你的假設,這將是1942年7月21日是錯誤的。 1942-07-22是正確的。
mysql > select timestampdiff(second, '1942-07-21', '1970-01-01');
+---------------------------------------------------+
| timestampdiff(second, '1942-07-21', '1970-01-01') |
+---------------------------------------------------+
| 866246400 |
+---------------------------------------------------+
所以價值自1970年以來仍保存爲微秒,1970年之前負值意味着僅僅寫下來,因爲它花了我一秒才明白 – RealCheeseLord