请问sqlserver如何将2个日期相减获得的小时差精确到0.5,比如加班时间超过半小时的算0.5

请问sqlserver如何将2个日期相减获得的小时差精确到0.5,比如加班时间超过半小时的算0.5,不到半小时的不算时间。

seal 发布于 2022-3-17 10:25
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
Z4u3z1Lv6专家互助
发布于2022-3-17 10:29(编辑于 2022-3-17 10:46)

 DATEDIFF(MINUTE,开始时间,结束时间)

select DATEDIFF(MINUTE,'2022-03-17 09:00',getdate())%60

例句

with a as (

SELECT '2022-03-17 09:00' [Time_]

union 

SELECT '2022-03-17 09:10' [Time_]

union 

SELECT '2022-03-17 09:20' [Time_]

union 

SELECT '2022-03-17 09:30' [Time_]

union 

SELECT '2022-03-17 09:40' [Time_]

)

SELECT (CASE WHEN DATEDIFF(MINUTE,Time_,getdate())%60 >=30 THEN (DATEDIFF(MINUTE,Time_,getdate())/60)+0.5  ELSE DATEDIFF(MINUTE,Time_,getdate())/60 END) FROM A 

image.png

  • seal seal(提问者) 但是这个没法只取到0.5为单位的范围,加班时间只能是0.5,1,1.5,2这样的
    2022-03-17 10:33 
  • Z4u3z1 Z4u3z1 回复 seal(提问者) 然后除60余数大于等于30的就算0.5
    2022-03-17 10:35 
  • seal seal(提问者) 回复 Z4u3z1 能发一下怎么写吗
    2022-03-17 10:37 
  • Z4u3z1 Z4u3z1 回复 seal(提问者) 看上边补充的例句
    2022-03-17 10:46 
  • seal seal(提问者) 感谢
    2022-03-17 10:53 
  • 1关注人数
  • 851浏览人数
  • 最后回答于:2022-3-17 10:46
    请选择关闭问题的原因
    确定 取消
    返回顶部