我已经进行了此查询,它可以正确显示当前日期一个月的数据。例如,此查询:
SELECT *
FROM test
WHERE price >=100
AND active = 1
AND dateadded >= UNIX_TIMESTAMP(DATE_SUB( CURDATE(), INTERVAL 1 MONTH))
ORDER BY testvalue DESC
此查询从10月30日到当前日期11月30日输出日期时间戳。我已经编辑了查询并取出了CURDATE
但是它失败了。
问题是如何将此查询更改为仅显示过去几个月,即月份为11月时的十月数据。
答案 0 :(得分:0)
您必须获取上个月第一天之间的范围,您可以通过格式化日期并将日期部分设置为01
和上个月的最后一天来获得。那是function。在手册的同一页面上,您还可以找到有关DATE_FORMAT()
。
SELECT *
FROM test
WHERE price >=100
AND active = 1
AND dateadded BETWEEN
UNIX_TIMESTAMP(DATE_FORMAT(DATE_SUB( CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01'))
AND UNIX_TIMESTAMP(CONCAT(LAST_DAY(DATE_SUB( CURDATE(), INTERVAL 1 MONTH), ' 23:59:59'))
ORDER BY testvalue DESC