如何在 CASE 语句中使用 'between'?

How to use 'between' in CASE statement?

我需要从我的作品 select 转变 table 这样,如果时间介于 05:00 PM 和 06:30 AM 之间,则为 Shift B,否则为 Shift A. 我写的 SQL 很简单,但没有给我预期的结果。 SQL 是

declare @time varchar(50)
set @time= (select time = convert(varchar,getdate(),108))

select Shift_FK_ID from production
where op_Date='2021-08-23' and Shift_FK_ID=
(CASE WHEN @time between '17:00:00' and  '06:30:00' 
Then '2'
Else '1'
End)

我得到的结果是

Shift_FK_ID
1
1
1

其中 op_Date 是操作日​​期。代码很简单,但无法弄清楚。可能跟24小时格式有关。

需要帮助。

此致

我想你想要这样的逻辑:

select (case when convert(time, getdate()) between '06:30:00' and '17:00:00'
             then 1 else 2
        end) as shift

这些比较不需要使用字符串。