sqlserver 2005求最近五天内过生的SQL语句!

山城忙碌人 2013-03-03 11:14:56
如题:
表结构如下
id name year date
1 张三 1990 20101
2 李四 1990 10201
3 王五 1990 20301
4 无名 1990 20401
5 左权 1990 20501


问题是:
date是用户生日,后四位是月份加日期,第一位数,1代表男,2代表女,请问如何得到最近五天过生的用户?
...全文
257 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
水族杰纶 2013-03-05
  • 打赏
  • 举报
回复
直接搞个完整的生日日期列 性别列多好
山城忙碌人 2013-03-05
  • 打赏
  • 举报
回复
引用 1 楼 Haiwer 的回复:
select * from tab where stuff(date,1,1,'') between right(convert(varchar(8),getdate(),112),4) and right(convert(varchar(8),dateadd(day,5,getdate()),112),4)
谢谢!
山城忙碌人 2013-03-05
  • 打赏
  • 举报
回复
引用 2 楼 hjywyj 的回复:
select * from tb where stuff(date,1,1,'') between right(convert(varchar(8),dateadd(day,-4,getdate()),112),4) and right(convert(varchar(8),getdate(),112),4)
谢谢!
山城忙碌人 2013-03-05
  • 打赏
  • 举报
回复
引用 5 楼 wufeng4552 的回复:
直接搞个完整的生日日期列 性别列多好
关键是这是之前很早前有人设计的表嘛,我改不了。里面有数据的!
haitao 2013-03-04
  • 打赏
  • 举报
回复
还要考虑年底(12-27至12-31)时的特殊情况
快溜 2013-03-04
  • 打赏
  • 举报
回复
datediff计算时间间隔
  • 打赏
  • 举报
回复
select * from tb where stuff(date,1,1,'') between right(convert(varchar(8),dateadd(day,-4,getdate()),112),4) and right(convert(varchar(8),getdate(),112),4)
昵称被占用了 2013-03-04
  • 打赏
  • 举报
回复
select * from tab where stuff(date,1,1,'') between right(convert(varchar(8),getdate(),112),4) and right(convert(varchar(8),dateadd(day,5,getdate()),112),4)

22,199

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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