生日表:
id birthday name
1 1985-10-20 jack
2 1967-10-16 anne
3 1988-12-1 tony
birthday: datetime 类型
sql server 2000 sp4
这个语句怎么写? 能 得到最近 7天过生日的 记录? 谢谢.
7天内过生日记录应该是:
jack
anne
我的思路是: 先把生日的 月和日 提出来. 然后提出 今年的年份. 再组成一个 新的日期. 再和 今天的日期 比较.
我是这么写的. 但是提示错误:
datediff(d,getdate(),year(getdate())-month(birthday)-day(birthday))<=7
提示我:
year(getdate())-month(birthday)-day(birthday)
这段代码转换DATETIME错误.
在SQL查询分析器里和ASP里 写都错的.
------解决方案--------------------
谢谢提醒,确实有跨年问题。 abs的使用可以避免0的判断。
------解决方案--------------------
abs的使用可以避免0的判断,是的,呵呵,不留意到abs.
如果是這樣,查詢未來七天也許更有實際意義
where datediff
(d,
cast(rtrim(year(getdate()))+'-'+rtrim(month(birthday))+'-'+rtrim(day(birthday)) as datetime),
getdate()) between 0 and 7
------解决方案--------------------
@dnaliang 请以4楼答案为准,用abs()没错的.