将小时计算为十进制数SSMS 2017版

问题描述 投票:0回答:0

在一张表中,我以秒为单位获取时间,而在另一张表中,我有开始时间戳和结束时间戳,我需要将小时数计算为十进制数。

在这两种情况下,我都无法得到包含小数的结果,它四舍五入为整数。

表 1 - 以秒为单位的时间。示例值为 5400.

[DURATIONSECSQTY] / 3600 
,ROUND([DURATIONSECSQTY] / 3600 ,2)
,CAST(ROUND([DURATIONSECSQTY] / 3600 ,2)as numeric(36,2))

所有选项返回 1 而不是 1.5 的结果。

表 2 - 开始时间戳和结束时间戳。示例值:

班次开始日期 换班日期
22-10-03 08:00:00.000 22-10-03 16:06:00.000
DATEDIFF(ss, [SHIFTSTARTDATE], [SHIFTENDDATE])
,DATEDIFF(ss, [SHIFTSTARTDATE], [SHIFTENDDATE]) / 3600
,ROUND(DATEDIFF(ss, [SHIFTSTARTDATE], [SHIFTENDDATE]) / 3600, 2)
,CAST(ROUND(DATEDIFF(ss, [SHIFTSTARTDATE], [SHIFTENDDATE]) / 3600, 2) as numeric(36,2))

所有选项返回 8 而不是 8.1 的结果。

sql sql-server hour ssms-2017
© www.soinside.com 2019 - 2024. All rights reserved.