我有一个相当奇怪的“错误”,带有一个简单的查询,我隐约记得很久以前在某个地方读过它的原因,但希望有人能刷新我的记忆。
该表是一个基本的ID、Datetime表。
查询是:
select ID, Datetime from Table where Datetime <= '2010-03-31 23:59:59'
问题是查询结果包含日期时间为“2010-04-01 00:00:00”的结果。第二天。这是不应该的。
Anyone?
Cheers
Moo
看一眼SQL Server 中如何存储日期? http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/how-are-dates-stored-in-sql-server and Between 如何处理 SQL Server 中的日期? http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/how-does-between-work-with-dates-in-sql-
如果这是一个小日期时间,它的精度为 1 分钟,因此如果四舍五入,日期时间的精度为 300 毫秒
example
DECLARE @d DATETIME
SELECT @d = '2001-12-31 23:59:59.999'
SELECT @d
2002-01-01 00:00:00.000
DECLARE @d DATETIME
SELECT @d = '2001-12-31 23:59:59.998'
SELECT @d
2001-12-31 23:59:59.997
根据您的情况,始终使用少于第二天午夜的时间
< '20100401'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)