linux - mysql数据库的timestamp为什么从1970到2038的某一时间?某一时间是指什么时间?过了这个时间之后怎么办?
怪我咯
怪我咯 2017-04-17 13:47:02
0
3
727

如题。
1 mysql数据库的timestamp为什么从1970到2038的某一时间?
2某一时间是指什么时间?
3过了这个时间之后怎么办?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(3)
伊谢尔伦

首先你要理解什麼是時間戳記。時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至某一時間點的總秒數。

例如北京時間2015-12-31 17:00:00的時間戳是1451552400,就是指從北京時間1970-01-01 08:00:00到2015-12-31 17:00:00已經過去了1451552400秒。

網路上有線上的時間戳記轉換工具:http://tool.chinaz.com/Tools/unixtime.aspx

下面一一問你的問題:

1、MySQL資料庫的timestamp為什麼要從1970到2038的某個時間?
MySQL的timestamp類型是4個位元組,最大值是2的31次方減1,也就是2147483647,轉換成北京時間就是2038-01-19 11:14:07。可以使用上面的在線的時間戳轉換工具得出。

2、某一時間是指什麼時間?
如上,北京時間是2038-01-19 11:14:07。

3、過了這個時間之後怎麼辦?
1) 使用datetime;
2) 等過了再說。

最後補充一顆彩蛋:北京時間2038-01-19 11:14:07,如果某些系統還在使用MySQL的Timestamp,或是系統使用的程式語言用4位元組補碼整型(例如Java的int)來表示時間戳的,這些系統都會跪掉,說不定會搞出點什麼大新聞(例如飛機航班系統掛掉、銀行某系統跪掉),好吧,我亂猜的,等著那一天吧。

PHPzhong
  1. 因為 32 位元整數只能表示這麼長的毫秒數

左手右手慢动作

1 因為這是unix時間戳(32位有符號int, 1970年起的秒數)能表示的範圍
2 1970年+ (13 不知道, 能過去再說, 建議那段時間不要用大眾運輸...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板