不准确的新用户查询

时间:2014-12-31 01:53:19

标签: mysql

SELECT COUNT( uid ) AS `Records` , DATE( FROM_UNIXTIME( 'since` ) ) AS `Date`
    FROM `accounts` WHERE  FROM_UNIXTIME(since) >= FROM_UNIXTIME($tstamp) 
    GROUP BY WEEK( FROM_UNIXTIME( `since` ) )
    LIMIT 200

使用它来尝试每天从指定日期获取新用户注册,但结果却非常不准确。这意味着我的查询是关闭的还是可能存在涉及时区的问题?下面是我从加载的示例数据集中获得的示例结果以及页面值时间戳,以便您可以看到结果应该是什么。 / p>

Result Sample

Actual DB READABLE TSTAMPS

1 个答案:

答案 0 :(得分:0)

建议使用HAVING代替WHEREGROUP BY子句。 此代码中也没有正确使用反引号(`)运算符。

所以更改此查询:

SELECT COUNT( uid ) AS Records , DATE( FROM_UNIXTIME( 'since` ) ) AS `Date`
    FROM `accounts` WHERE  FROM_UNIXTIME(since) >= FROM_UNIXTIME($tstamp) 
    GROUP BY DATE( FROM_UNIXTIME( `since` ) )
    LIMIT 200

到这一个:

SELECT COUNT(`uid`) AS Records , DATE( FROM_UNIXTIME(`since`) ) AS Date
    FROM accounts
    GROUP BY DATE( FROM_UNIXTIME( `since` ) )
    HAVING FROM_UNIXTIME(`since`) >= FROM_UNIXTIME($tstamp)
    LIMIT 200