如何计算T-SQL中的时间差

3 t-sql sql-server

我创建了一个包含数据类型列的表 time(7)

我想计算它们之间的时差。

time

 id   timefrom     timeto      result
 --------------------------------------
 1    13:50:00     14:10:00    00:20:00   
 2    11:10:00     11:00:00    23:50:00
Run Code Online (Sandbox Code Playgroud)

例如:

  • 时间从 13:50
  • 时间到 14:10

结果应显示00:20

有这个功能吗?

DATEDIFF(hour, UseTimeFrom, UseTimeTo) hourtime,
(DATEDIFF(MINUTE, UseTimeFrom , UseTimeTo)) - (((DATEDIFF(hour, UseTimeFrom, UseTimeTo)) * 60)) as mintime
Run Code Online (Sandbox Code Playgroud)

Jam*_*s Z 6

你可以这样做:

select *, convert(time, convert(datetime, timeto) - convert(datetime, timefrom)) 
from table1
Run Code Online (Sandbox Code Playgroud)

这会将时间转换为第 0 天(1.1.1900)的日期时间,然后进行计算,如果 timeto 较小,它将到达前一天,但转换为时间将从中获取时间部分。

SQL Fiddle 中的示例