计算日期之间的分钟数

时间:2013-02-14 23:13:31

标签: sql-server

我需要帮助将下面的excel逻辑转换为SQL子查询。非常感谢您的帮助。

C栏

  • 第2行)10/1/12 4:24 PM
  • 第3行)10/1/12 4:25 PM
  • 第4行)10/1/12 4:26 PM
  • 第5行)10/1/12 7:27 PM

累计会议纪要

  • 第2行)2
  • 第3行)1
  • 第4行1)
  • 第5行)45

Excel公式

  • 第2行)= IF((C3-C2)> 45,45,(C3-C2)* 1440)
  • 第3行= IF((C4-C3)> 45,45,(C4-C3)* 1440)
  • 第4行= IF((C5-C4)> 45,45,(C5-C4)* 1440)
  • 第5行= IF((C6-C5)> 45,45,(C6-C5)* 1440)

1 个答案:

答案 0 :(得分:1)

这个怎么样:

WITH CTE(RowNumber, Date) AS(
select 1, '2012-01-10 16:22' union
select 2, '2012-01-10 16:24' union
select 3, '2012-01-10 16:25' union
select 4, '2012-01-10 16:26' union
select 5, '2012-01-10 19:27'
)
select b.Date, IIF(DATEDIFF(minute, a.Date, b.Date) > 45, 45, DATEDIFF(minute, a.Date, b.Date)) as AccumulatedMinutes
from CTE b left outer join CTE a on a.RowNumber = b.RowNumber - 1

它返回:

2012-01-10 16:22    NULL
2012-01-10 16:24    2
2012-01-10 16:25    1
2012-01-10 16:26    1
2012-01-10 19:27    45