Transact-SQL总结经过的时间

mat*_*uma 5 sql t-sql sql-server

我的数据库中有一个表,用于记录特定任务的开始和停止时间.以下是数据示例:

Start                       Stop
9/15/2008 5:59:46 PM        9/15/2008 6:26:28 PM
9/15/2008 6:30:45 PM        9/15/2008 6:40:49 PM
9/16/2008 8:30:45 PM        9/15/2008 9:20:29 PM
9/16/2008 12:30:45 PM       12/31/9999 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)

我想编写一个脚本,总计这些时间框架的经过时间,并且只要有12/31/9999日期,我希望它使用当前日期和时间,因为这仍在进行中.

我如何使用Transact-SQL执行此操作?

AJ.*_*AJ. 11

SELECT  SUM( CASE  WHEN Stop = '31 dec 9999' 
                   THEN DateDiff(mi, Start, Stop)
                   ELSE DateDiff(mi, Start, GetDate())
             END ) AS TotalMinutes 
FROM    task
Run Code Online (Sandbox Code Playgroud)

但是,更好的解决方案是制作 __CODE__

__CODE__
SELECT  SUM( DateDiff( mi, Start, IsNull(Stop, GetDate() ) ) AS TotalMinutes 
FROM    task
Run Code Online (Sandbox Code Playgroud)