计算两个日期/时间列之间的“分钟”

时间:2014-03-06 15:28:59

标签: sql sql-server

我知道这应该是一个非常简单的问题,但是当我阅读其他人的问题并查看答案时,我很难理解它是如何与我现有的查询联系起来的。我认为这只是一个心理障碍。

无论如何,在SQL Server 2008中,除了已经列出的内容之外,我还希望显示一个新列。所有数据都来自一个表。我目前的Start_time& End_time显示在(yyyy-MM-dd hh:mm:ss)。我只想在End_time之后创建一个名为 Time_To_Complete 的新列,显示这两个日期/时间列之间的差异,仅以分钟为单位。

这是我的基本查询

SELECT Index_ID
      ,Start_time
      ,End_time

FROM table_name WITH (NOLOCK)

ORDER BY Start_time DESC

2 个答案:

答案 0 :(得分:1)

使用DATEDIFF

SELECT Index_ID ,
        Start_time ,
        End_time, 
        Time_To_Complete = DATEDIFF(MINUTE, Start_Time, End_Time)
FROM table_name WITH (NOLOCK)
ORDER BY Start_time DESC

或者,如果您希望将其作为表格中的列,请添加computed column

ALTER TABLE table_name 
ADD Time_To_Complete AS DATEDIFF(MINUTE, Start_Time, End_Time)

答案 1 :(得分:1)

SELECT Index_ID 
      ,Start_time 
      ,End_time
      ,DATEDIFF(MINUTE, Start_time,End_time) AS  Time_To_Complete

FROM table_name WITH (NOLOCK)

ORDER BY Start_time DESC