SQL DATEDIFF不工作?

JBo*_*oom 6 sql t-sql datediff

我正在运行一个简单的DATEDIFF查询但它似乎没有正确计算日期或我做错了什么.

如果我跑

PRINT DATEDIFF(Day, 2010-01-20, 2010-01-01)
RETURN 19
Run Code Online (Sandbox Code Playgroud)

哪个是对的.如果我把第一个月的月份更改为2月(02),我会发现一些奇怪的事情.

PRINT DATEDIFF(Day, 2010-02-20, 2010-01-01)
RETURN 20
Run Code Online (Sandbox Code Playgroud)

现在不应该是48或什么?

任何人都可以看到我做错了,或者这不是正确的功能,如果我想要这些日期之间的天数?

我试过从另一个开始约会:

PRINT (2010-02-20) - (2010-01-01)
RETURN -20
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.

谢谢J.

CRe*_*lts 4

你缺少引号

PRINT DATEDIFF(Day, '2010-01-01', '2010-02-20')
Run Code Online (Sandbox Code Playgroud)

你得到 20 是因为

2010 - 1 - 1 = 2008
2010 - 2 - 20 = 1988

2008 - 1988 = 20
Run Code Online (Sandbox Code Playgroud)