超难的日期间隔问题

mmcgzs 2010-02-23 11:04:14
如何计算两个日期
如 2010-2-23 23:00:00 和 2010-2-28 14:21:00
相隔多少分钟,遇周六、日 忽略不计。

正确的应该是 计算到 2010-2-23 23:00:00 和 2010-2-27 00:00:00 相隔的分钟数


...全文
110 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmcgzs 2010-02-24
  • 打赏
  • 举报
回复
果然高手,这段代码的执行效率也很高
采纳了。
-狙击手- 2010-02-23
  • 打赏
  • 举报
回复
declare @dt1 datetime,@dt2 datetime,@i int
set @dt1 = '2010-2-23 23:00:00'
set @dt2 = '2010-2-28 14:21:00'
set @i = 1
declare @t table(dt datetime,l int)

while dateadd(d,@i,@dt1)<@dt2
begin
insert @t select dateadd(d,@i,@dt1),case when datepart(dw,dateadd(d,@i,@dt1)) in(1,7) then 0 else 24*60 end
set @i = @i +1
end
insert @t select @dt1,case when datepart(dw, @dt1 ) in(1,7) then 0 else datediff(mi,@dt1,convert(char(10),dateadd(d,1,@dt1),120)) end
insert @t select @dt2,case when datepart(dw, @dt2 ) in(1,7) then 0 else datediff(mi,convert(char(10),@dt2,120),@dt2) end
select sum(l) as m from @t


m
-----------
4380

(所影响的行数为 1 行)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧