我知道这可能看起来是一个新手的问题,但我很好奇,为什么在SQL日期必须是这样的:为什么SQL Server需要这种精确的日期格式?
FieldBeginDate
2010-04-01 00:00:00.000
FieldEndDate
2010-12-31 23:59:00.000
为什么三小数或精度?并且有没有办法将日期显示为仅显示月份 - 日期?谢谢!
我知道这可能看起来是一个新手的问题,但我很好奇,为什么在SQL日期必须是这样的:为什么SQL Server需要这种精确的日期格式?
FieldBeginDate
2010-04-01 00:00:00.000
FieldEndDate
2010-12-31 23:59:00.000
为什么三小数或精度?并且有没有办法将日期显示为仅显示月份 - 日期?谢谢!
SQL Server 2008有一个DATE
类型,它消除了时间。
使用DATE
类型,而不是DATETIME
型也只需要一个int
存储的价值...而不是存储一个DATETIME
编辑所需的 int
S:你也请问为什么有三位小数......这是因为存储值的精度默认为(@AaronBetrand在下面的评论中恰当地指出,您的可以获得扩展精度)。 SQL Server以百分之一秒为单位存储时间增量增量。
这里是SQLDenis的话题:
http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/how-are-dates-stored-in-sql-server
还有'DATETIME2(7)',它允许7位小数位而不是3位。并且没有可怕的3ms四舍五入问题。 –
准确地说,DATE只需要3个字节,而对于int来说只需要4个字节。 –
@AaronBertrand inteed,但OP似乎要求*少*精度。 – Matthew
我知道你已经接受一个答案,但你知道你可以使用convert命令将您选择的格式转换的日期。如果使用带有nvarchar(10)的convert,它会自动知道如何将其转换为适合该大小约束的东西。 – RetroCoder