生日提醒SQL
2009-07-27 10:30 starlet 阅读(1074) 评论(2) 收藏 举报
生日提醒SQL:
解决问题:假如三天之内,是8月30-9月1日之间,如果用datepart(m,staff_time)=datepart(m,getdate()) 查不到的问题
代码
参考链接
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 包含今天、昨天、前天
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)
DateDiff(Day,DateAdd(year,DateDiff(year,Birthday,GetDate())+1,Birthday),GetDate()) between -365 and 0
order by datepart(m,Birthday),datepart(d,Birthday)
注意:超过或等于365就没有什么意义 这样会查出所有的数据
参考链接

浙公网安备 33010602011771号