時間:2024-02-08 11:17作者:下載吧人氣:23
在SQL Server的內部存儲中,日期和時間不是以字符串的形式存儲的,而是使用整數來存儲的。使用特定的格式來區分日期部分和時間部分的偏移量,并通過基準日期和基準時間來還原真實的數據。
一,DateTime的內部存儲
SQL Server存儲引擎把DateTime類型存儲為2個int32類型,共8個字節,第一個int32 整數(前4個字節)存儲的是日期相對于基準日期(1900-01-01)的偏移量。基準日期是1900-01-01,當前4 字節為0 時,表示的日期是1900 年1 月1 日。第二個int32整數(后4個字節)存儲的是**(00:00:00.000)之后的時鐘滴答數,每個滴答為1⁄300秒,精確度為3.33毫秒(0.00333秒,3.33ms),因此,DateTime能夠表示的時間,可能會存在一個滴答的時間誤差。
DateTime的內部存儲格式,用十六進制表示是:DDDDTTTT
舉個例子,對于如下的日期和時間,把DateTime類型轉換為大小為8個字節的16進制,每兩個數字對應1個字節:
declare @dt datetime = ‘2015-05-07 10:05:23.187’
select convert(varbinary(8), @dt) as date_time_binary
–output 0x0000A49100A6463C
網友評論