使用SQL Server的DateTime2以精度0表示日期而不是内置日期字段有什么影响.
在任何一种情况下,我担心的是防止意外的时间输入,但是我应该注意存储或性能方面的考虑吗?
M.A*_*Ali 18
DateTime2(0) 将存储没有小数值的日期时间即 YYYY-MM-DD hh:mm:ss
SELECT CONVERT(DateTime2(0) , GETDATE())
RESULT: 2015-04-06 20:47:17
Run Code Online (Sandbox Code Playgroud)
像日期一样存储数据只会存储日期,即YYYY-MM-DD没有任何时间值.
SELECT CONVERT(Date , GETDATE())
RESULT: 2015-04-06
Run Code Online (Sandbox Code Playgroud)
如果您只对日期感兴趣,请使用DATE数据类型.
DATETIME2将使用6 bytes的精度less than 3和DATE将使用3 bytes.
日期是DATETIME(0)的一半大小因此它也将表现更好,因为sql server将处理更少的数据并且也将节省磁盘空间.
它不会起作用.根据MSDN,Datetime2的最小大小是六个字节,并且将包含hh:mm:ss,因此它可以包含时间组件(默认为午夜).正如其他响应者所指出的那样,您必须使用日期类型来保证不保存时间部分并占用三个字节.
https://technet.microsoft.com/en-us/library/bb677335%28v=sql.105%29.aspx
| 归档时间: |
|
| 查看次数: |
8785 次 |
| 最近记录: |