我有一个包含两列的表,一个id和一个unix时间戳(即不是Mysql样式,但只是1970年代的纯秒。)
我想知道每天有多少时间戳。
我到目前为止的查询是:
SELECT unixtime, count(unixtime)
AS count
FROM core
GROUP BY unixtime
我需要做的当然是将unixtime标记舍入到最近的一天。我该怎么做?
答案 0 :(得分:2)
将FROM_UNIXTIME
与DATE
一起使用可以获得所需的结果:
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 |
+---------------------+