有一个时间表,如何根据时间返回对应的日期及班次?

现在有这么一个表,我想要实现,穿一个时间参数进去,返回对应的班次及时间。

例如:2023.11.25  20:28:20。班次:白班 ,日期:2023.11.25

例如:2023.11.25  07:45:20。班次:夜班 ,日期:2023.11.24

我的条件改怎么写呢?

image.png

这是我目前的写法,还是有点问题

DECLARE @DATE DATETIME = '2023-11-22 07:31:20.433'

SELECT TOP 100 *  

FROM worktime AS wkt

WHERE wkt.IsCheck = 'Y'

AND wkt.companyid = 'DGXY'

AND 'XPREPRT' = wkt.dept

AND (CONVERT(TIME,@DATE) BETWEEN CONVERT(TIME,wkt.time1) AND CONVERT(TIME,wkt.time6) 

OR  (CONVERT(TIME,@DATE) BETWEEN CONVERT(TIME,wkt.time1) AND CONVERT(TIME,CONVERT(VARCHAR(10),@DATE,23)+' 23:59:59') 

OR CONVERT(TIME,@DATE) BETWEEN CONVERT(TIME,CONVERT(VARCHAR(10),@DATE,23)+' 00:00:00') AND CONVERT(TIME,wkt.time6)

)

)

image.png

FineReport 孜云 发布于 2023-11-25 16:41
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
取消
  • 1关注人数
  • 193浏览人数
  • 最后回答于:2023-11-25 16:41
    请选择关闭问题的原因
    确定 取消
    返回顶部