关于SQL查询语句的问题,高手来解答

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:28:31
我想做一个查询,就像同学录上的生日榜一样,提前7天把快过生日的人名和生日列出来。先谢谢啦!
补充一下:提前7天就会显示,一直到生日过完了才不会显示列表

SELECT * FROM [表名]
WHERE datepart(month,getdate())-DATEPART(MONTH,生日字段)=0
AND DATEPART(MONTH,生日字段)-DATEPART(MONTH,GETDATE())>=0
AND DATEPART(DAY,生日字段)-DATEPART(DAY,GETDATE())<7
ORDER BY 生日字段

这是在一个月内的可以查询到,跨月的我再考虑一下.
下面的你试一下看,是否符合你的要求

SELECT * FROM [表名]

WHERE datepart(month,getdate())-DATEPART(MONTH,生日字段)=0
AND DATEPART(MONTH,生日字段)-DATEPART(MONTH,GETDATE())>=0
AND DATEPART(DAY,生日字段)-DATEPART(DAY,GETDATE())<7

OR(datepart(month,getdate())-DATEPART(MONTH,生日字段)=-1
AND DATEPART(MONTH,生日字段)-DATEPART(MONTH,GETDATE())+30>=0
AND DATEPART(DAY,生日字段)-DATEPART(DAY,GETDATE())+30<7)

ORDER BY 生日字段

select 名字 from 表 where (生日-今天 = 7)

select * from tablename where datediff(d,生日字段,getdate())<=7

=========================================================

select * from tablename where datediff(d,生日字段,getdate())<=7 and datediff(d,生日字段,getdate())>-1