纪元时间和MySQL查询

sil*_*ver 6 mysql epoch

我有这样一张桌子:

id   | date
---- | -----------
1    | 1319043263
2    | 1319043578
Run Code Online (Sandbox Code Playgroud)

哪个日期字段格式在epoch中.我必须对属于同一天的每一行进行分组,并将它们显示在一个单独的组中.我怎么能在MySQL中这样做?

谢谢.

Jos*_*and 14

通过...分组:

SELECT COUNT(`id`) AS `Records`, DATE(FROM_UNIXTIME(`date`)) AS `Date` 
FROM `table`
GROUP BY DATE(FROM_UNIXTIME(`date`))
Run Code Online (Sandbox Code Playgroud)

输出:

    Records | Date
--------------------------------
      10    | 2011-10-19
      10    | 2011-10-18
Run Code Online (Sandbox Code Playgroud)

订购方式:

SELECT `id`, FROM_UNIXTIME(`date`) AS `Date`
FROM `table`
ORDER BY DATE(FROM_UNIXTIME(`date`)) [ASC|DESC]
Run Code Online (Sandbox Code Playgroud)

(虽然实际上你只使用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
Run Code Online (Sandbox Code Playgroud)

这会将unix时间戳转换为mysql日期时间,然后从应用于分组或订单子句的日期值中提取日期值

如果你想按天分组而不管月份和年份使用DAY()而不是DATE()

但是你可以扩展关于"按行分组"的部分.你想要展示什么结果?当你对某些东西进行分组时,你会在组中的某个字段上使用某种聚合处理器,如COUNT()或SUM().

MySQL组函数参考

MySQL日期和时间函数参考