gpt4 book ai didi

sql - SQL Server 中的奇怪日期时间行为

转载 作者:行者123 更新时间:2023-12-04 23:07:47 25 4
gpt4 key购买 nike

 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'

结果
 1
我的问题是为什么以及如何使它正确?
编辑
问题出在 sql server 2008

最佳答案

你有一个精度问题。 .999 被四舍五入到 .000。

.997 尽可能接近第二天。

declare @data datetime
set @data = '2011-01-01T23:59:59.997'
select @data

在此处查看有关“日期时间小数秒精度舍入”的部分
http://msdn.microsoft.com/en-us/library/ms187819.aspx

如果您使用的是 SQL Server 2008,则可以使用 datetime2(3)如果你想要精确到毫秒。

关于sql - SQL Server 中的奇怪日期时间行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com