我在INT中的时间戳中有一个测量时间的列,我需要按一小时的间隔进行组数据。我已经发现了MySQL函数FROM_UNIXTIME(),但MySQL中是否有内部工具从这个函数的结果中提取小时?
答案 0 :(得分:9)
我认为你的意思是FROM_UNIXTIME
GROUP BY
DATE_FORMAT(FROM_UNIXTIME(time_column), '%Y %m %d %H'))
答案 1 :(得分:5)
SELECT *
FROM table
GROUP BY DATE_FORMAT(FROM_UNIXTIME(time_col_name), '%H')
查看MySQL的Date documentation。
修改强>
使用DATE_FORMAT
来可靠地确定返回小时的格式。见DATE_FORMAT documentation。 注意:格式%H将以00,01,... 23格式返回小时值。
答案 2 :(得分:1)
类似的东西:
SELECT HOUR(FROM_UNIXTIME(unixCol))
FROM tbl
GROUP BY HOUR(FROM_UNIXTIME(unixCol))
HOUR
将在UNIX时间戳转换为日期后提取小时。
答案 3 :(得分:0)
尝试将该数据库数据作为日期放入变量中,然后回显它。
$timestamp = strtotime($db_data);
echo date("m-d-Y", $timestamp);
答案 4 :(得分:0)
我知道这是在初始问题之后的几年,但是如果你处理更大的数据集,由于为查询集中的每一行调用了2个函数,这可能需要更长的时间。
我通过使用一些模运算
设法减少了几秒钟的时间GROUP BY FLOOR(time_col/(60*60) MOD 24)
希望这会有所帮助:)