環境:SQLServer 2008 R2
問題:SQLServer date、datetime、smalldate區別
解決:
datetime
從1753年1月1日到9999年12月31日的日期和時間數據,精確度為百分之三秒(等於 3.33毫秒或0.00333秒)。如下表所示,把值調整到.000、.003、或.007 秒的增量。
日期和 時間部分,可以表示的日期范圍從公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精確到 3.33毫秒,它需要8個字節的存儲空間。
smalldatetime
從1900年1月1日到2079年6月6日的日 期和時間數據精確到分鐘。29.998秒或更低的 smalldatetime值向下捨入為最接近的分鐘,29.999秒 或更高的smalldatetime值向上捨入為最接近的分鐘。需要4字節的存儲空間。
date
SQL Server 2008新引進的數據類型。它表示一個日子,不包含時間部分,可以表示的日期范圍從公元元年1月1日 到9999年12月31日。只需要3個字節的存儲空間。
在讀取該數據時不管你的字段是datetime或 smalldatetime讀出來的格式都一樣(如:1900-01-01)。datetime不會顯示出他的毫秒,但是在進行時間比 較時他要毫秒就會出現,從而讓兩個時間段不能相等。