我有一个这样的表:
id | date
---- | -----------
1 | 1319043263
2 | 1319043578
哪个日期字段格式在纪元。我必须将属于同一天的每一行分组,并将它们显示在一个单独的组中。我如何在 MySQL 中执行此操作?
谢谢。
最佳答案
分组依据:
SELECT COUNT(`id`) AS `Records`, DATE(FROM_UNIXTIME(`date`)) AS `Date`
FROM `table`
GROUP BY DATE(FROM_UNIXTIME(`date`))
输出:
Records | Date
--------------------------------
10 | 2011-10-19
10 | 2011-10-18
订购方式:
SELECT `id`, FROM_UNIXTIME(`date`) AS `Date`
FROM `table`
ORDER BY DATE(FROM_UNIXTIME(`date`)) [ASC|DESC]
(尽管实际上您将仅使用 FROM_UNIXTIME() 或原始 date
值获得相同的排序,因为它们会在排序尝试中正确堆叠)
输出:
id | Date
--------------------------------
03 | 2011-10-19 12:00:00
02 | 2011-10-18 12:00:00
01 | 2011-10-17 12:00:00
这会将 unix 时间戳转换为 mysql 日期时间,然后从应用于分组或顺序子句的日期值中提取日期值
如果你想按天分组而不考虑月份和年份,请使用 DAY() 而不是 DATE()
但是,您能否扩展关于“按天对每一行进行分组”的部分。你想显示什么结果?当你对某件事进行分组时,你会在组内的一个字段上使用某种聚合处理器,如 COUNT() 或 SUM() 。
关于mysql - 纪元时间和MySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7825739/