在两个时间戳日期之间查询

时间:2014-01-16 09:48:37

标签: php mysql sql

我正在尝试在今天和一周之前显示我的下载查询,这是我的查询

    SELECT 
        COUNT(1) AS d_count, 
        d_timestamp 
    FROM dl_table 
    WHERE id = 'someid'
        AND d_timestamp BETWEEN 1389830400 AND 1389260583 
    GROUP BY d_timestamp 
    ORDER BY d_timestamp ASC LIMIT 7;

上面的查询无法正常工作并返回一个空列或者返回7列{1}}中有1个值,这是完全错误的!问题在哪里?

有什么想法吗?

注意:

d_coun等于今天的时间戳,我通过1389830400得到它。

strtotime("today");等于-1周前的时间戳,我通过1389260583获得。

strtotime("-7 day");是一个整数列。

2 个答案:

答案 0 :(得分:2)

SELECT
  COUNT(id) AS downloads,
  FROM_UNXTIME(d_timestamp, '%Y-%m-%d') AS day
FROM dl_table
WHERE id = 'someid'
AND d_timestamp BETWEEN 1389830400 AND 1389260583 
GROUP BY day
ORDER BY day

这应该有效。格式化时间戳更具可读性,即使时间戳与00:00完全不匹配(无论出于何种原因),它也可以100%确定您按天分组。

答案 1 :(得分:0)

尝试此查询,因为d_timestamp列值似乎存在问题     SELECT COUNT(1) AS d_count, d_timestamp FROM dl_table WHERE id = 'someid' AND CAST(d_timestamp AS UNSIGNED) BETWEEN 1389830400 AND 1389260583 GROUP BY d_timestamp ORDER BY d_timestamp ASC LIMIT 7;

相关问题