SQL使用unix时间戳记在一个月内记录

Dav*_*dge 1 mysql sql datetime timestamp group-by

我试图在每个月内返回记录数,并按月/年对结果进行分组.

架构看起来像这样:

id    title    timestamp
Run Code Online (Sandbox Code Playgroud)

我一直在寻找,但我无法得到预期的结果.谢谢.

Bjo*_*ern 8

格式化时间戳,然后按其分组.

按月分组:

SELECT DATE_FORMAT(t.timestamp, "%Y-%m") AS "_Month", COUNT(*)
FROM yourtable as t
GROUP BY _Month;
Run Code Online (Sandbox Code Playgroud)

按年度分组:

SELECT DATE_FORMAT(t.timestamp, "%Y") AS "_Year", COUNT(*)
FROM yourtable as t
GROUP BY _Year;
Run Code Online (Sandbox Code Playgroud)

如果timestamp-field存储为unixtime-value,则只需环绕FROM_UNIXTIME()该字段:

SELECT DATE_FORMAT(FROM_UNIXTIME(t.timestamp), "%Y") AS "_Year", COUNT(*)
FROM yourtable as t
GROUP BY _Year;
Run Code Online (Sandbox Code Playgroud)