很多时候我们需要查询包括今天未来5天内的用户生日,我们如何使用一条sql语句实现呢。我们来介绍一下。
在这里我们将使用数据库中的时间函数 DateAdd 来计算。
比如我们的生日是日期字段,并且字段名为birthday,表明为 birthday,下面就是我们的sql实现语句。
select * from birthday where (DateAdd(\"d\",5,now)>DateAdd(\"yyyy\",year(now)-year(birthday),birthday) and DateAdd(\"yyyy\",year(now)-year(birthday),birthday)>DateAdd(\"d\",-1,now)) or DateAdd(\"d\",5,now)>DateAdd(\"yyyy\",(year(now)-year(birthday))+1,birthday)
其中 yyyy 代表年份增加,d代表日期增加,使用到的year函数获取日期年份。
顺便介绍一下DateAdd的用法,此函数有3个参数。
第一个参数将说明是在什么的基础之上加
yyyy | 年 |
q | 季 |
m | 月 |
y | 一年的日数 |
d | 日 |
w | 一周的日数 |
ww | 周 |
h | 时 |
n | 分 |
s | 秒 |
第二个参数将接受一个整型数据,加多少。
第三个参数将接受一个日期,在某个日期的基础上加
例如:DateAdd("yyyy",3,now) ,这句话的意思是3年后的今天。
转载出处:疯子的博客–张光照-网站开发,网站建设,建站知识技巧-立足于贵阳,专注于IT,前沿技术发展,
详细原文地址:http://www.zhangguangzhao.name/birthday-reminder-sql-to-achieve-within-the-next-5-days-in-todayu002639s-users/