我有日期时间格式的时间列表
datetime action
11:13:40 eat
12:33:40 sleep
14:44:40 walk
14:55:40 eat
14:59:40 call
我想分组
11:00am eat
12:30pm eat
2:30pm walk
2:30pm eat
2:30pm call
最佳答案
这是一种方法:
SELECT DATE_FORMAT(`datetime`,IF(MINUTE(`datetime`)<30,'%l:00%p','%l:30%p'))
, action
FROM ...
ORDER BY 1
放松一下:我们使用MINUTE函数从datetime值中提取分钟部分。如果小于30,则将分钟部分指定为“ 00”,否则,将数字指定为“ 30”。其余的只是格式化。
%l
给我们小时值从1到12,没有零填充。 %p
为我们获取'AM'或'PM'值。 (如果需要小写,则可以将整个DATE_FORMAT表达式包装在LOWER()函数中。关于mysql - 如何按小时30分钟分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15015286/