1

如何在 SQL 中减去 2 个日期并获得 HH:MI:SS

(SQL Server 2005)我正在使用 MS Access 来执行此操作。

例子:

23-09-2013 15:43:59

23-09-2013 15:43:33 -


想要的答案 00:00:26

4

2 回答 2

0

使用DateDiff, 对于时间跨度格式使用字符串方法:

SELECT  Diff = 
       right('0'+ rtrim(CAST(DateDiff(hour, @dt2, @dt1)  AS VARCHAR(2))), 2) + ':' +
       right('0'+ rtrim(CAST(DateDiff(minute, @dt2, @dt1)AS VARCHAR(2))), 2) + ':' +
       right('0'+ rtrim(CAST(DateDiff(second, @dt2, @dt1)AS VARCHAR(2))), 2) 

Demo

于 2013-09-24T09:33:54.037 回答
0

如果这两个日期在 24 小时范围内,您可以使用以下代码:

SELECT LEFT(CONVERT(VARCHAR, DATEADD(SECOND, DATEDIFF(SECOND, @Date2, @Date1), 0), 114), 8)

资料来源:如何使用 T-SQL 将秒转换为 HH:MM:SS

如果您不能在 Access 程序中使用本机 SQL 查询,请查看这些链接(Access 语法):

也许您可以在不使用 CONVERT 的情况下操作生成的字符串(Access 中不支持)。

于 2013-09-24T09:39:51.370 回答