使用1753年1月1日的決定(1753-01-01
),因?yàn)镾QLServer中日期時(shí)間的最小日期值可以追溯到它的Sybase起源.
然而,日期本身的意義可以歸因于這個(gè)人。
菲利普·斯坦霍普,切斯特菲爾德伯爵四世。誰(shuí)指揮了1750年日歷(新式樣)法通過(guò)英國(guó)議會(huì)。這為英國(guó)及其殖民地采用公歷制定了法律。
有一些失蹤日在1752年的英國(guó)歷法中,這一調(diào)整最終是從朱利安歷法中做出的。1752年9月3日至1752年9月13日。
卡倫·德萊尼解釋這樣的選擇
那么,在損失了12天的情況下,你如何計(jì)算日期呢?例如,如何計(jì)算1492年10月12日至1776年7月4日之間的天數(shù)?你包括那些失蹤的12天嗎?為了避免不得不解決這個(gè)問(wèn)題,最初的Sybase SQL Server開(kāi)發(fā)人員決定不允許1753之前的日期。您可以通過(guò)使用字符字段來(lái)存儲(chǔ)較早的日期,但不能使用任何日期時(shí)間函數(shù)來(lái)存儲(chǔ)在字符字段中的較早日期。
1753年的選擇確實(shí)有點(diǎn)以英國(guó)為中心,然而許多天主教國(guó)家在歐洲,在英國(guó)實(shí)施之前,這個(gè)日歷已經(jīng)使用了170年(最初是由于反對(duì)而推遲的)。在教堂旁邊)。相反,許多國(guó)家直到1918年在俄羅斯才改革他們的日歷。事實(shí)上,1917年的十月革命是在公歷下于11月7日開(kāi)始的。
雙管齊下datetime
和新的datetime2
中提到的數(shù)據(jù)類型喬的回答不要試圖解釋這些本地差異,而只是使用GregorianCalendar。
所以在更大范圍內(nèi)datetime2
SELECT CONVERT(VARCHAR, DATEADD(DAY,-5,CAST('1752-09-13' AS DATETIME2)),100)
回報(bào)
Sep 8 1752 12:00AM
最后一點(diǎn)datetime2
數(shù)據(jù)類型是它使用前陽(yáng)歷倒映到它實(shí)際上發(fā)明之前,所以在處理歷史日期方面的作用是有限的。
這與其他軟件實(shí)現(xiàn)(如Java)形成對(duì)比公歷類,該類的默認(rèn)日期為遵循朱利安日歷,直到1582年10月4日,然后在新的公歷中跳到1582年10月15日。它正確地處理了那個(gè)日期之前的閏年的朱利安模型和那個(gè)日期之后的格里高利模型。調(diào)用方可以通過(guò)調(diào)用更改轉(zhuǎn)換日期。setGregorianChange()
.
一篇相當(dāng)有趣的文章,討論了日歷通過(guò)后的一些更多的特點(diǎn)。可以在這里找到.