您可以將TIME添加到日期時間值。在這裏,我們通過Declare @D datetime = convert(date,GetDate())
Declare @YourTable table (time_on time,time_off time)
Insert Into @YourTable values
('08:00:00','17:00:00'),
('00:00:00','12:00:00'),
('21:00:00','09:00:00'),
('00:00:00','12:00:00'), -- Added for illustration
('12:00:00','00:00:00') -- Added for illustration
Declare @D datetime = convert(date,GetDate())
Select *
From @YourTable
Where GetDate() >= @D+convert(datetime,time_on)
and GetDate() <= @D+convert(datetime,time_off)+case when time_off<=time_on then 1 else 0 end
返回截斷電流GETDATE()至午夜
time_on time_off
12:00:00.0000000 00:00:00.0000000
我的當前日期時間爲2017年4月2日18:33:53.803未滿足任何的原來的標準,所以我加了兩個記錄用於說明
或者,如果你不想申報@D
Select *
From @YourTable
Where GetDate() >= convert(datetime,convert(date,GetDate()))+convert(datetime,time_on)
and GetDate() <= convert(datetime,convert(date,GetDate()))+convert(datetime,time_off)+case when time_off<=time_on then 1 else 0 end
有你的表日期字段? – McNets
@zerkms向['Time(7)'](https://docs.microsoft.com/en-us/sql/t-sql/data-types/time-transact-sql)添加24小時是有問題的,因爲它只能包含24小時以上的時間。更大的範圍會使許多任務變得更容易。 – HABO
@HABO很高興知道,謝謝 – zerkms