首页 > 解决方案 > 需要帮助使用 between 显示来自 mysql 查询的日期

问题描述

我只需要显示上个月、本月和下个月的日期,但从这个 mysql 查询中没有得到任何结果

$query = "SELECT *,
DATE_FORMAT(created_at,'%M') SHIFTDATEMONTH,
DATE_FORMAT(created_at,'%e') SHIFTDATEDAY,
DATE_FORMAT(created_at,'%W') SHIFTDATEWEEKDAY,
FROM record
WHERE user='".$usernamez."'
AND MONTH(created_at) BETWEEN 'MONTH(CURRENT_DATE() - INTERVAL 1 MONTH)' AND 'MONTH(CURRENT_DATE() + INTERVAL 1 MONTH)'
AND YEAR(created_at) BETWEEN 'YEAR(CURRENT_DATE() - INTERVAL 1 MONTH)' AND 'YEAR(CURRENT_DATE() + INTERVAL 1 MONTH)'
ORDER BY created_at ASC";

标签: phpmysql

解决方案


试试这个,这会奏效

select * from users where (YEAR(created_at) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
AND MONTH(created_at) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH) OR MONTH(created_at) = MONTH(CURRENT_DATE())AND YEAR(created_at) = YEAR(CURRENT_DATE()) OR YEAR(created_at) = YEAR(CURRENT_DATE + INTERVAL 1 MONTH) AND MONTH(created_at) = MONTH(CURRENT_DATE + INTERVAL 1 MONTH))

在此处输入图像描述


推荐阅读