SQL DATEDIFF 不工作?

标签 sql tsql datediff

我正在运行一个简单的 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/

相关文章:

asp.net - 在数据库或文件中保存长细节?

Mysql错误代码: 1292 Incorrect datetime value : ''

mysql 查询到期日期和现在日期之间的 datediff

SQL 日期公式

excel - 基于标准的 DateDif

sql - 如何在 Spark 中通过组聚合滚动时间窗口

sql - 如何将日期参数传递到存储过程中

sql - 检查值是正还是负

sql - 使用临时列过滤结果

sql-server - 将先前切碎的 xml 值应用于后续元素