如何在小时和分钟之间获得两个日期时间之间的差异

Any*_*are 3 sql sql-server datetime sql-server-2012

如果我有两个这样的日期时间:

transtime_in, transtime_out
Run Code Online (Sandbox Code Playgroud)

如何以下列格式区分这些日期时间:

hh:mm
Run Code Online (Sandbox Code Playgroud)

我用

DATEDIFF(hour, transtime_in, transtime_out) 
Run Code Online (Sandbox Code Playgroud)

但我只得到时间.

Dev*_*art 6

试试这个 -

查询:

DECLARE 
      @transtime_in DATETIME
    , @transtime_out DATETIME

SELECT 
      @transtime_in = '2013-05-19 08:58:07.000'
    , @transtime_out = '2013-05-19 16:40:53.000'

SELECT LEFT(CONVERT(VARCHAR(10), @transtime_out - @transtime_in, 108), 5)
Run Code Online (Sandbox Code Playgroud)

输出:

-----
07:42
Run Code Online (Sandbox Code Playgroud)

  • 因为,如果您使用带有108格式的CONVERT,您将获得HH:MM:SS并在使用LEFT连接到HH:MM之后.可能,这是最简单的方法. (2认同)
  • +1非常好的答案 - 很棒.样式论证是我从未完全理解的 - 但现在做 - 即使我经常使用它来将时间转换为DateKeys`CONVERT(CHAR(8),GETDATE(),112)` (2认同)