SQL Server 将时间计算转换为以HH:MM为单位的时间

nfs0ujit  于 2022-12-17  发布在  其他
关注(0)|答案(2)|浏览(276)

我希望在SQL Server中创建一个计算,该计算将显示time列中HH_MM的时差。
例如,小时和分钟之间的差异

5:45 PM - 3:30 PM = 2:15 (desired output)

我所能得到的最接近的答案是:

CONVERT(TIME,cals_END_time - cals_START_time) = 02:15:00.0000000

我该怎么把它“修剪”到2点15分呢?

xnifntxz

xnifntxz1#

假设列为datetime,使用format函数 * 格式化 * 时间值:

select format(cast(cals_end_time - cals_start_time as time), N'h\:mm')
from (values
    (cast('2022-07-07 15:30:00' as datetime), cast('2022-07-07 17:45:00' as datetime))
) as tests(cals_start_time, cals_end_time)

DB<>Fiddle

9jyewag0

9jyewag02#

如果您想添加/减去日期/日期时间,您需要使用相关函数来执行此操作,如下所示:

select *, convert(varchar(5), dateadd(minute, datediff(minute, [TimeOut], TimeIn), convert(time, '00:00'))) TimeDifference
    -- , CONVERT(TIME, [TimeOut], TimeIn) -- gives an error anyway?
from (
    values
    (convert(time, '05:45 PM'), convert(time, '03:30 PM'))
) x (TimeIn, [TimeOut]);

退货:
| 进入时间|超时|时差|
| - ------|- ------|- ------|
| 十七时四十五分|15时30分|2点15分|

相关问题