declare @data datetime
set @data = '2011-01-01 23:59:59:999'
select @data
结果是:
2011-01-02 00:00:00.000
第二个例子:
declare @data datetime
set @data = '2011-01-01 23:59:59:999'
select 1 where @data >= '2011-01-02 00:00:00:000'
result
1
我的问题是为什么以及如何使其正确?
edit
问题出在sql server 2008中
你的精度有问题。 0.999 向上舍入为 0.000。
.997 是您能得到的最接近第二天的值。
declare @data datetime
set @data = '2011-01-01T23:59:59.997'
select @data
请查看有关“日期时间小数秒精度的舍入”的部分http://msdn.microsoft.com/en-us/library/ms187819.aspx http://msdn.microsoft.com/en-us/library/ms187819.aspx
如果您使用的是 SQL Server 2008,则可以使用日期时间2(3) http://msdn.microsoft.com/en-us/library/bb677335.aspx如果你想要精确到毫秒。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)