我正在运行一个简单的 DATEDIFF 查询,但它似乎没有正确计算天数,或者我做错了什么。
如果我跑
PRINT DATEDIFF(Day, 2010-01-20, 2010-01-01)
RETURN 19
哪个是正确的。如果我将第一个日期的月份更改为 2 月 (02),我会得到一些奇怪的信息。
PRINT DATEDIFF(Day, 2010-02-20, 2010-01-01)
RETURN 20
现在不应该是 48 或什么的吗?
任何人都可以看到我做错了什么,或者如果我想要这些日期之间的天数,这不是正确的功能吗?
我试过从另一个约会:
PRINT (2010-02-20) - (2010-01-01)
RETURN -20
非常感谢任何帮助。
谢谢
J。
最佳答案
你缺少引号
PRINT DATEDIFF(Day, '2010-01-01', '2010-02-20')
你得到 20 是因为
2010 - 1 - 1 = 2008
2010 - 2 - 20 = 1988
2008 - 1988 = 20
关于SQL DATEDIFF 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2517617/