天天看點

為什麼程式設計語言以及資料庫要從1970年1月1日開始計算時

  net framewrok 中,

datetime.minvalue           => 0001/01/01 00:00:00

sqldatetime.minvalue.value  => 1753/01/01 00:00:00

sql server 2005 中,

datetime 最小值              => 1753/01/01 00:00:00

smalldatetime 最小值         => 1900/01/01 00:00:00

net framewrok 中,

datetime.maxvalue            => 9999/12/31 23:59:59.999

sqldatetime.maxvalue.value   => 9999/12/31 23:59:59.997

datetime 最大值               => 9999/12/31 23:59:59.997

smalldatetime 最大值         =>2079.6.6

  是以需要在資料庫插入最小時間時不能使用datetime.minvalue,需要使用

  sqldatetime.minvalue.value。

  好了到現在sql server資料庫時間問題解決了,突然又想起了系統中有個啥1970年1月1日的時間。那這個時間又是啥來來曆呢,懷着好奇寶寶的心理我有在網上查閱了一番得到如下解釋:

  1.可以簡單的這樣認為:unix系統認為1970年1月1日0點是時間紀元,是以我們常說的unix時間戳是以1970年1月1日0點為計時起點時間的。這個解釋是懶人最愛^_^

  2.這個比較科學

  到這裡,我想問題的答案已經出來了:因為用32位來表示時間的最大間隔是68年,而最早出現的unix作業系統考慮到計算機産生的年代和應用的時限綜合取了1970年1月1日作為unix time的紀元時間(開始時間),至于時間回歸的現象相信随着64為作業系統的産生逐漸得到解決,因為用64位作業系統可以表示到292,277,026,596年12月4日15時30分08秒,相信我們的n代子孫,哪怕地球毀滅那天都不用愁不夠用了,因為這個時間已經是千億年以後了。   

最新内容請見作者的github頁:http://qaseven.github.io/