使用SQL Server的DateTime2(精度爲0)代表日期而不是內置Date字段會有什麼影響。SQL Server DateTime2(0)與日期
無論是哪種情況,我的擔心都是爲了防止意外時間輸入,但是我應該注意哪些存儲或性能方面的考慮?
使用SQL Server的DateTime2(精度爲0)代表日期而不是內置Date字段會有什麼影響。SQL Server DateTime2(0)與日期
無論是哪種情況,我的擔心都是爲了防止意外時間輸入,但是我應該注意哪些存儲或性能方面的考慮?
它不起作用。根據MSDN,Datetime2的最小大小是六個字節,並且將包含hh:mm:ss,因此它可以並且將包含時間分量(默認爲午夜)。正如其他響應者已經注意到,您必須使用日期類型來保證不保存時間部分並佔用三個字節。
https://technet.microsoft.com/en-us/library/bb677335%28v=sql.105%29.aspx
DateTime2(0)
將日期時間存儲不帶小數值即YYYY-MM-DD hh:mm:ss
SELECT CONVERT(DateTime2(0) , GETDATE())
RESULT: 2015-04-06 20:47:17
存儲數據,就像日期將只存儲日期即YYYY-MM-DD
沒有任何時間值。
SELECT CONVERT(Date , GETDATE())
RESULT: 2015-04-06
如果您只對日期有興趣,請使用DATE
數據類型。
DATETIME2
將使用6 bytes
的精度less than 3
和DATE
將使用3 bytes
。
日期是DATETIME(0)大小的一半,因此它的性能也會更好,因爲sql server會處理更少的數據並且也會節省磁盤空間。
'DateTime2(0)'仍然允許您存儲時間。 '日期'不會。 – JodyT
你的意思是DateTime2 v/s DateTime? DateTime2添加更多[精度](https://technet.microsoft.com/en-us/library/bb677335%28v=sql.105%29.aspx)到值的時間部分.. – abhi
@abhi,nope。我看到了一個我正在維護的項目中的差異,並想知道爲什麼會有所不同。 –