日期:2014-05-18  浏览次数:20528 次

如何比较时间呢?我想判断 7:30之前是前一天的夜班,但是7:30后,就是今天白班
如何比较时间呢?我想判断 7:30之前是前一天的夜班,但是7:30后,就是今天白班

就是以早晨的7:30,和晚上的 19:30 为分界点。但是我不知如何判断?
getdate()函数取取到的日期,如何进行比较判断呢?

------解决方案--------------------
用datapart计算比较
select datepart(hour,getdate())--返回当前小时
select datepart(minute,getdate())--返回当前的分钟
------解决方案--------------------
SQL code

declare @t table(id int,t datetime)
insert into @t select 1,'2012-05-07 13:02:01'
union all select 2,'2012-05-08 1:02:01'
union all select 3,'2012-05-08 12:02:01'
select id
,上班日期=convert(varchar(10),dateadd(mi,-240,t),120)
,上班類型=case when convert(varchar(10),t,108) between '07:30:00' and '19:30:00'
    then '白班'
    else '夜班'
    end
from @t