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

时间:2015-11-30 11:37:24

标签: mysql 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月时的十月数据。

1 个答案:

答案 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