I need to select Shift from my production table such that if the time time is between 05:00 PM to 06:30 AM it is Shift B else its Shift A. The SQL that I have written is quite simple but does not gives me the expected results. The SQL is
x
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)
The Result I get is
Shift_FK_ID
1
1
1
Where op_Date is operations date. The code was simple but can’t figure it out. Maybe it has something to do with 24 hrs format.
Help required.
Regards
Advertisement
Answer
I think you want logic like this:
select (case when convert(time, getdate()) between '06:30:00' and '17:00:00'
then 1 else 2
end) as shift
There is no need to use strings for these comparisons.