导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

超难的日期间隔问题

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 相隔的分钟数


...全文
69 点赞 收藏 2
写回复
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 行)
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告