首页 新闻 会员 周边 捐助

SQL计算两个日期时间差,去除周末和节假日,结果以小时显示

0
悬赏园豆:20 [待解决问题]

如现在有一张表A,表中有两个字段,开始时间STARTTIME,结束时间ENDTIME
两个时间的值分别为:STARTTIME('2021/8/6 13:25:30'),ENDTIME('2021/8/9 10:12:30)
现在需要计算两个时间差=结束时间-开始时间'
计算结果为=0.865972222,这里去除了两天的周末,时间未满24小时
请问,用SqlServer语句怎么实现这样的效果

鸹貔的主页 鸹貔 | 初学一级 | 园豆:182
提问于:2021-08-06 14:25
< >
分享
所有回答(4)
0

这种东西为什么要在sql里实现?

顾晓北 | 园豆:10898 (专家六级) | 2021-08-06 14:57

做报表用的呀

支持(0) 反对(0) 鸹貔 | 园豆:182 (初学一级) | 2021-08-06 15:10

@鸹貔: 不能在程序里实现?

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2021-08-06 15:15

@顾晓北: 我也想在程序里实现,但是现在这个做报表的就只能用SQL语句写

支持(0) 反对(0) 鸹貔 | 园豆:182 (初学一级) | 2021-08-06 15:16
0

写个 函数 吧,传两个日期,判断间隔天数,循环日期判断是否在周末的,并且减去相应天数
SELECT DATEPART(DW,'2021-08-15') 可以 判断是否在周末,

flyfishing | 园豆:927 (小虾三级) | 2021-08-06 15:23

现在有做去除周末和节假日的,但是没做到按小时制的显示

支持(0) 反对(0) 鸹貔 | 园豆:182 (初学一级) | 2021-08-06 15:26

@鸹貔: 你是要把天换成 XX小时 ,还是显示 XX天XX小时

支持(0) 反对(0) flyfishing | 园豆:927 (小虾三级) | 2021-08-06 15:37

@flyfishing: 就是现在做的这个只是去除周末和节假日,但是是整天整天算的,没有做到按小时算的,如果超过24小时就1.几,没超过就0.几,这样的,想要像图片那样相减后剩下的结果

支持(0) 反对(0) 鸹貔 | 园豆:182 (初学一级) | 2021-08-06 15:53
-1

只能用sql?你确定。那样的话可能得写存储过程吧

会长 | 园豆:12463 (专家六级) | 2021-08-06 19:10

嗯,这个的话只能用sql,

支持(0) 反对(0) 鸹貔 | 园豆:182 (初学一级) | 2021-08-11 13:47
0

https://www.cnblogs.com/mjxxsc/p/15170209.html 我写了一个答案, 由于这里不好贴代码,你到我那边去看

兴想事成 | 园豆:540 (小虾三级) | 2021-08-21 18:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册