【发布时间】:2021-11-20 02:47:59
【问题描述】:
我正在尝试在 SQL Server 中使用 datediff 函数。我正在查询同一个表中的两个日期时间列。我正在尝试获得以小数点为单位的小时和分钟的结果。
作为一个例子,我有这个查询:
Select
startdatetime, enddatetime,
datediff(minutes, startdatetime, enddatetim) / 60 as 'Hrs worked'
from table1
结果将类似于:
startdatetime | enddatetime | Hrs. worked
2019-02-28 06:00:00.0000000 -08:00 2019-02-28 07:15:00.0000000 -08:00 1
显然 startdatetime 和 enddatetime 之间的差异应该是 1.25 而不仅仅是 1。
有没有显示十进制值(1.25)?
我也试过了:
Select
StartDateTime, EndDateTime,
Convert(decimal(3), (Datediff(minute, StartDateTime, EndDateTime))) / 60 AS 'Hrs Worked'
From Table1
我确实得到了小时。工作为“1.250000”,但我无法删除尾随零。
如果我使用decimal(2) 而不是decimal(3),我会收到此错误:
将 int 转换为数据类型 numeric 的算术溢出错误
有什么建议吗?
【问题讨论】:
-
尾随零不会改变数字的值?
标签: sql sql-server tsql datediff