我在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>
答案 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);