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