0

timeコマーシャルが公開された時間を格納するフィールドを持つ MySQL テーブルがあります。それらを 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時まで!したがって、次の 2 つのことを行う必要があります。

1) 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 に答える