注意datetime和smalldatetime最大差別

 
碰上了這件事,才學到教訓,一直以為smalldatetime和datetime的差別只是在於時間範圍:
smalldatetime的有效時間範圍1900/1/1~2079/6/6
datetime的有效時間範圍1753/1/1~9999/12/31
所以我判斷如果該值不用到太遠的日期範圍,就會使用smalldatetime。
但我忽略了更關鍵的差別,那就是smalldatetime只精準到分,而datetime則可精準到3.33毫秒。
因此,當我怎麼存,秒都是00後,才發現原來是smalldatetime惹的禍,待我將資料型別改成datetime後,秒的部份就可以正常儲存了。

*****************************************************************************************
SQL Server中,smalldatetime只能精確到分鐘,而datatime可以精確到3%秒(3.33毫秒)。

smalldatetime佔用4個字節,前2個字節存儲base date(1900年1月1日)之後的天數。後2個字節存儲午夜後的分鐘數

datetime佔用8個字節,前4個字節存儲base date(即1900年1月1日)之前之後的天數,後4個字節存儲午夜後的毫秒數

由於datetime的精度是3%秒,這就涉及到小數,毫秒之前可以是冒號,也可以是小數點。使用冒號時表示的意義同時分秒間隔,11:11:11:21表示021毫秒,前面的0省略,而小數點表示的意義同數學上的小數點,如11:11:11.21表示210毫秒,省略的是後面的0。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章