mysql 查询 - 显示上个月的数据 unix 时间戳

mysql query - show last month's data unix timestamp

我进行了此查询,它可以正常显示从当前日期起一个月的数据。例如这个查询:

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 月,则显示 10 月的数据。

您必须获取上个月的第一天和上个月的最后一天之间的范围,您可以通过设置日期格式并将日部分设置为 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