这个sql怎么写?

bombshell 2008-01-06 10:38:12
表中有个出生日期字段,现在想做生日提醒功能,例如:提前7天提醒,如何查找出数据库中出生日期和当前日期差小于等于7天的数据?这个sql该怎么写?
id csrq
1 1977-01-11
2 1968-01-09
3 1966-01-01
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2008-01-06
  • 打赏
  • 举报
回复
1楼的兄弟,不把年份转为一样的话,你的语句有问题.
dawugui 2008-01-06
  • 打赏
  • 举报
回复
create table tb(id int, csrq datetime)
insert into tb values(1, '1977-01-11')
insert into tb values(2, '1968-01-09')
insert into tb values(3, '1966-01-01')
go

select id , csrq from tb
where datediff(day , getdate() , datename(year,getdate()) + substring(convert(varchar(10),csrq,120),5,6)) between 0 and 7

drop table tb

/*
id csrq
----------- -----------------------
1 1977-01-11 00:00:00.000
2 1968-01-09 00:00:00.000

(2 行受影响)
*/
dawugui 2008-01-06
  • 打赏
  • 举报
回复
select id , csrq from tb
where datediff(day , getdate() , datename(year,getdate()) + substring(convert(varchar(10),csrq,120),5,5)) <= 7
jlwei888 2008-01-06
  • 打赏
  • 举报
回复

select id
from table
where
DATEDIFF ( day , csrq , getdate() ) < 7

你试试吧!

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧