代码改变世界

生日提醒SQL

2009-07-27 10:30  starlet  阅读(1074)  评论(2)    收藏  举报
生日提醒SQL:

where DateDiff(Day,DateAdd(year,DateDiff(year,Birthday,GetDate()),Birthday),GetDate())  between   -1   and  0 
order by datepart(m,Birthday),datepart(d,Birthday)

--between   -1   and  0  包含今天、明天
--
between   -2   and  0  包含今天、明天、后天
--
between    0   and  1  包含今天、昨天
--
between    0   and  2  包含今天、昨天、前天

解决问题:假如三天之内,是8月30-9月1日之间,如果用datepart(m,staff_time)=datepart(m,getdate())   查不到的问题


生日提醒SQL(修正跨年):

 

代码
where  DateDiff(Day,DateAdd(year,DateDiff(year,Birthday,GetDate()),Birthday),GetDate())  between   -365   and  0 or 
      
DateDiff(Day,DateAdd(year,DateDiff(year,Birthday,GetDate())+1,Birthday),GetDate())  between   -365   and  0 
order by datepart(m,Birthday),datepart(d,Birthday)


注意:超过或等于365就没有什么意义 这样会查出所有的数据

 


参考链接