MySQL在2个日期之间选择(时间戳存储为INT)

时间:2017-03-09 12:03:17

标签: mysql

我在sales表中有这条记录:

time:1487884981(INT),amount:10

运行此查询时,我得到NULL。

SELECT SUM(`amount`)
FROM `sales`
WHERE `time`
BETWEEN DATE_SUB(1488949200, INTERVAL 30 DAY) AND 1488949200;

我应该修改什么来获得所需的结果10?

请注意:查询应返回介于两者之间的所有记录的总和(1488949200 - 30天)和1488949200,在这种情况下,它应返回10,因为记录的时间戳介于这两个不同的日期之间。 / p>

1 个答案:

答案 0 :(得分:2)

使用FROM_UNIXTIME()将自纪元以来的秒数转换为实际日期:

SELECT SUM(amount)
FROM sales
WHERE FROM_UNIXTIME(time) BETWEEN
      DATE_SUB(FROM_UNIXTIME(1488949200), INTERVAL 30 DAY) AND
      FROM_UNIXTIME(1488949200);