0

我有一个包含两列、一个 ID 和一个 unix 时间戳的表(即不是 Mysql 样式,而是从 1970 年开始的纯秒数。)

我想知道每天有多少个时间戳。

到目前为止我的查询是:

SELECT unixtime, count(unixtime)
    AS count
    FROM core
    GROUP BY unixtime

我需要做的当然是将 unixtime 标记四舍五入到最近的一天。我该怎么做呢?

4

2 回答 2

2

使用FROM_UNIXTIMEwithDATE应该可以得到你想要的结果:

SELECT DATE(FROM_UNIXTIME(unixtime)), COUNT(unixtime) AS count
FROM core
GROUP BY DATE(FROM_UNIXTIME(unixtime))
于 2012-10-04T21:21:12.847 回答
0

您可以使用整数除法来查找自纪元以来的日期(整数)。

# current day
mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2014-04-16 14:52:06 |
+---------------------+

#number of days since epoch - there 86400
mysql> select unix_timestamp() div 86400 as days_since_epoch;
+------------------+
| days_since_epoch |
+------------------+
|            16176 |
+------------------+

#convert back to rounded off day
mysql> select from_unixtime((unix_timestamp() div 86400) * 86400) as today;
+---------------------+
| today               |
+---------------------+
| 2014-04-16 00:00:00 |
+---------------------+
于 2014-04-16T14:54:55.067 回答