SQL DATEDIFF返回错误的结果

SQL DATEDIFF返回错误的结果,sql,sql-server,date-arithmetic,Sql,Sql Server,Date Arithmetic,我的SQL查询如下: SELECT CAST(-1 * DATEDIFF(hour, '21-APR-2019 11:30:00 AM', '22-APR-2019 2:15:20 PM') % 24 AS VARCHAR) 上述查询的输出:- -3 预期产出:- -2 这是因为: DATEDIFF(hour, '21-APR-2019 11:30:00 AM', '22-APR-2019 2:15:20 PM') 返回27而不是26 更改为: SELECT CAST(-1

我的SQL查询如下:

SELECT  CAST(-1 * DATEDIFF(hour, '21-APR-2019 11:30:00 AM', '22-APR-2019 
2:15:20 PM') % 24 AS VARCHAR) 
上述查询的输出:-

-3 
预期产出:-

-2
这是因为:

DATEDIFF(hour, '21-APR-2019 11:30:00 AM', '22-APR-2019 
2:15:20 PM')
返回
27
而不是
26

更改为:

SELECT  CAST(-1 * (DATEDIFF(minute, '21-APR-2019 11:30:00 AM', '22-APR-2019 
2:15:20 PM') / 60) % 24 AS VARCHAR)

当我们使用<代码> DATEDIFF(小时,……/代码>)时,它只考虑“代码>小时/代码>的值,而忽略<代码>分钟<代码>代码>第二版/代码>,并考虑它们的值为“代码>00”/代码>。谢谢!是的,我做了同样的操作,但是如果我把时间从AM改为PM,那么它比实际的HursDATEDIFO(1)少了我的小时数。返回一个整数并使用天数、小时等的边界。结果没有错。这只是函数的工作方式。请阅读此处的详细信息: