SQL 判断时间条件

时间:2023-02-10 22:30:41

1.判断年月日是否相等

select * from table 
where cast(convert(varchar(10), 时间字段, 120) as datetime)='2010-10-01'

判断逻辑:通过convert函数现将时间字段中年月日截取出来,然后利用cast函数转化为datetime。

2.判读度分秒是否相等

set @transfrom_date= CAST('1900-1-1 '+ CONVERT(varchar(100), '时间字段', 108) as datetime)

select * from table
where CAST('1900-1-1 '+ CONVERT(varchar(100), '时间字段', 108) as datetime)=@transfrom_date

判断逻辑:现将时间条件语句转化为度分秒,然后执行查询并将比对的时间字段转化为同一年月日的度分秒。

3.判断是否为同一年份、月份、日

select *  from table 
--年份
where datediff(year,'时间字段','时间条件')=0
--月份
where datediff(month,'时间字段','时间条件')=0
--日where datediff(day,'时间字段','时间条件')=0

 4.判断未来多少天即将过生日的人员信息

select * from table
where 0<=DATEDIFF(dd,GETDATE(),DATEADD(yy,DATEDIFF(yy, birthday, GETDATE()),birthday))
and
DATEDIFF(dd,GETDATE(),DATEADD(yy,DATEDIFF(yy, birthday, GETDATE()),birthday))<=天数