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))<=天数