Php 当前日期和未来7天之间的生日用户不使用“介于”条件
我写了一个简单的查询来检查当前日期和未来7天之间的生日,这在几天前运行良好,但现在它返回0结果。我发现的原因是它在12-29到01-05之间搜索,所以我认为这就是为什么它不返回的原因。查询如下:Php 当前日期和未来7天之间的生日用户不使用“介于”条件,php,mysql,Php,Mysql,我写了一个简单的查询来检查当前日期和未来7天之间的生日,这在几天前运行良好,但现在它返回0结果。我发现的原因是它在12-29到01-05之间搜索,所以我认为这就是为什么它不返回的原因。查询如下: SELECT `U`.`FirstName`, `U`.`LastName`, `U`.`UserGUID`, `U`.`ProfilePicture` WHERE DATE_FORMAT(U.DOB,'%m-%d') BETWEEN DATE_FORMAT('2015-12-29 07:08:01'
SELECT `U`.`FirstName`, `U`.`LastName`, `U`.`UserGUID`, `U`.`ProfilePicture`
WHERE DATE_FORMAT(U.DOB,'%m-%d')
BETWEEN DATE_FORMAT('2015-12-29 07:08:01','%m-%d')
AND DATE_FORMAT('2016-01-05','%m-%d')
将查询更改为:
您可以通过
DATE\U格式(U.DOB,'%Y%m')
使用字符串比较
DATE_格式(U.DOB,“%Y%m”)
应返回日期,如:YYYYMM。您还需要更改变量的格式或对其使用相同的方法
SELECT `U`.`FirstName`, `U`.`LastName`, `U`.`UserGUID`, `U`.`ProfilePicture`
WHERE DATE_FORMAT(U.DOB,'%Y%m') >= DATE_FORMAT('2015-12-29 07:08:01','%Y%m') AND
DATE_FORMAT(U.DOB,'%Y%m') <= DATE_FORMAT('2016-01-05','%Y%m')
选择`U`.`FirstName`、`U`.`LastName`、`U`.`UserGUID`、`U`.`ProfilePicture`
其中日期格式(U.DOB,'%Y%m')>=日期格式('2015-12-29 07:08:01','%Y%m')和
日期格式(U.DOB,“%Y%m”)您可以得到如下所示
SELECT `U`.`FirstName`, `U`.`LastName`, `U`.`UserGUID`, `U`.`ProfilePicture` WHERE DAY(cast(U.DOB as datetime)) BETWEEN DAY(cast('2015-12-29 07:08:01' as datetime)) AND DAY(cast('2016-01-05' as datetime)) AND
MONTH(CAST(U.DOB AS DATETIME)) BETWEEN MONTH(CAST('2015-12-29 07:08:01'AS DATETIME)) AND MONTH(CAST('2016-01-05' AS DATETIME))
是的,你应该检查年份,但我需要检查生日而不是生日。那些生日在2015年或2016年之前的人呢?请改进你的问题并添加表结构
SELECT `U`.`FirstName`, `U`.`LastName`, `U`.`UserGUID`, `U`.`ProfilePicture` WHERE DAY(cast(U.DOB as datetime)) BETWEEN DAY(cast('2015-12-29 07:08:01' as datetime)) AND DAY(cast('2016-01-05' as datetime)) AND
MONTH(CAST(U.DOB AS DATETIME)) BETWEEN MONTH(CAST('2015-12-29 07:08:01'AS DATETIME)) AND MONTH(CAST('2016-01-05' AS DATETIME))