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>
答案 0 :(得分:0)
建议使用HAVING
代替WHERE
和GROUP 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