Php MYSQL上月查询未返回前9天

Php MYSQL上月查询未返回前9天,php,mysql,Php,Mysql,我正在查询上一个日历月的记录。由于现在是2月,它应该返回今年1月添加的所有记录 我的问题是: 它返回一些记录,但跳过前9天。它从上个月10号开始显示记录。我在这里遗漏了什么?试着一步一步地获取数据,比如 SELECT * FROM table_name WHERE date between DATE_SUB(DATE_SUB(CURRENT_DATE,INTERVAL DAYOFMONTH(CURRENT_DATE)-1 DAY),INTERVAL 1 MONTH) AND DATE_SUB(D

我正在查询上一个日历月的记录。由于现在是2月,它应该返回今年1月添加的所有记录

我的问题是:


它返回一些记录,但跳过前9天。它从上个月10号开始显示记录。我在这里遗漏了什么?

试着一步一步地获取数据,比如

SELECT * FROM table_name WHERE date between DATE_SUB(DATE_SUB(CURRENT_DATE,INTERVAL DAYOFMONTH(CURRENT_DATE)-1 DAY),INTERVAL 1 MONTH) AND DATE_SUB(DATE_SUB(CURRENT_DATE,INTERVAL DAYOFMONTH(CURRENT_DATE)-1 DAY),INTERVAL 1 DAY) AND campaign = '$campaign' ORDER BY date ASC
首先,您应该尝试下面的查询

SELECT Date, DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY) AS StartDate, DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)), INTERVAL 0 DAY)  AS EndDate FROM MyTable
第二,若第一步给出正确的日期,那个么通过直接写入日期而不是在where子句中添加函数来获取数据

第三,如果这些将给您写入数据,那么尝试使用DATE\u ADD函数获取数据


如果您将获得解决方案,请重播。

从表\u名称中选择* MONTHdate=MONTHNOW-1和YEARdate=YEARNOW 或 MONTHdate=12,MONTHNOW=1,YEARdate=Earthow-1,campaign='$campaign'按日期排序
ASC`

检查日期字段类型,确保没有将其与varchar弄错。

将表格与数据一起发布尝试将日期函数的结果保存为字段并检查其值。或者在phpmyadmin中运行此查询。@OfirBaruch,它返回相同的结果!需要在my phpmyadmin?@MD.AtiqurRahman中执行什么操作?显示示例数据删除条件活动=“$campaign”,然后检查记录是否返回这是罪魁祸首。谢谢你,先生!
SELECT Date, DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY) AS StartDate, DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)), INTERVAL 0 DAY)  AS EndDate FROM MyTable