在Mysql查询中舍入unix时间戳

时间:2012-10-04 21:17:39

标签: mysql

我有一个包含两列的表,一个id和一个unix时间戳(即不是Mysql样式,但只是1970年代的纯秒。)

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

我到目前为止的查询是:

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

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

2 个答案:

答案 0 :(得分:2)

FROM_UNIXTIMEDATE一起使用可以获得所需的结果:

SELECT DATE(FROM_UNIXTIME(unixtime)), COUNT(unixtime) AS count
FROM core
GROUP BY DATE(FROM_UNIXTIME(unixtime))

答案 1 :(得分: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 |
+---------------------+