sql时间段判断
本帖最后由 luozh29 于 2013-09-25 10:12:28 编辑 请求各位大神,一个sql时间段判断问题:
如:数据库中定义, 07:00--17:00为白班 17:00--07:00 为夜班 现在一条记录时间为:2013-08-21 17:54:44.780 我如何判断这条记录是哪个班别?如给出解决,小弟感激不尽! sql 数据库
[解决办法]
如果只有白班和夜班的话可以这样
SELECT CASE WHEN DATENAME(hh,GETDATE()) BETWEEN 7 AND 17 THEN '白班' ELSE '夜班' END
/*----
白班
(1 行受影响*/
declare @setdate datetime
set @setdate='2013-08-21 17:54:44.780'
select case when DATEPART(hour,@setdate)>=7 and DATEPART(hour,@setdate)<17 then 1
when DATEPART(hour,@setdate)>=17 and DATEPART(hour,@setdate)<24 then 2
when DATEPART(hour,@setdate)>=1 and DATEPART(hour,@setdate)<7 then 2
else 0 end as datetimeType
SELECT CASE WHEN CAST(REPLACE(convert(VARCHAR(5),GETDATE(),108),':','') AS INT) BETWEEN 730 AND 1730 THEN '白班' ELSE '夜班' END
/*----
白班
(1 行受影响*/