题
我运行一个简单的DATEDIFF查询,但它似乎并没有正确计算天或我做错了。
如果我运行
PRINT DATEDIFF(Day, 2010-01-20, 2010-01-01)
RETURN 19
哪个是正确的。如果我在第一次约会二月(02)更改月份我收到一些奇怪的事情。
PRINT DATEDIFF(Day, 2010-02-20, 2010-01-01)
RETURN 20
现在不应它是48或什么?
任何人都可以看到我在做什么错误,或者如果我想这些日期之间的天不就是这个不被使用正确的功能?
我试着采取一个日期从其他:
PRINT (2010-02-20) - (2010-01-01)
RETURN -20
任何帮助非常赞赏。
由于 学家
解决方案
您缺少报价
PRINT DATEDIFF(Day, '2010-01-01', '2010-02-20')
你得到20,因为
2010 - 1 - 1 = 2008
2010 - 2 - 20 = 1988
2008 - 1988 = 20
其他提示
如果你运行它这种方式:
SELECT 2010-02-20, 2010-01-01
您将看到
1988 2008
这是结果还是整数运算,你把这里。
括日期常数成单引号:
SELECT DATEDIFF(Day, '2010-02-20', '2010-01-01')
--
-50
它的工作原理,如果你周围的日期与撇号 -
SELECT DATEDIFF(day, '2010-02-20', '2010-01-10')
-41
PRINT DATEDIFF(Day, '2010-01-10', '2010-02-20')
这需要第二日期 - 第一个日期。不要忘了'。
不隶属于 StackOverflow