0

我有一个 MySQL 表,其中包含一个time存储广告发布时间的字段。我需要按 15 分钟的周期对它们进行分组并显示。

例子:

            |comm1|comm2 |comm3|
--------------------------------
|8:00- 8:15 |   2 | 5    |  0  |
--------------------------------
|8:15- 8:30 |   0 | 0    |  1  |
--------------------------------
|8:30- 8:45 |   4 | 1    |  3  |
--------------------------------
|8:45- 9:00 |   4 | 5    |  2  |
--------------------------------
|...        |   . | .    |  .  |
--------------------------------

以此类推直到24:00!所以,我需要做两件事:

1) 以全天 15 分钟为单位进行划分,以及

2) 围绕广告运行的时间,到这些时间段中最接近的时间段。

任何的想法?我只能使用 PHP/MySQL。

4

2 回答 2

3

试试这个——

SELECT
  SEC_TO_TIME((TIME_TO_SEC(time_field) DIV 900) * 900) AS round_time
FROM table

其中 900 是 60 秒 * 15 分钟。

于 2012-10-11T09:09:10.763 回答
0

如果对您的桌子一无所知,这很难说。但是假设你有一个 unix 时间戳字段,你可以像这样得到开始小时+季度:

SELECT concat( hour( from_unixtime( time ) ) , ':', floor( minute( from_unixtime( time ) ) %4 ) *15 ) FROM table

在这种情况下time是您的 unix 时间戳字段。如果您有时间/日期时间字段,则可以删除 FROM_UNIXTIME 函数。

于 2012-10-11T09:05:38.743 回答