首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql2000获取最近7i的生日会员记录.语句如何写

2013-10-16 
sql2000获取最近7i的生日会员记录.语句怎么写生日表:idbirthdayname11985-10-20jack21967-10-16anne31988-

sql2000获取最近7i的生日会员记录.语句怎么写
生日表:
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()没错的.

热点排行