1

たとえば、午前 8 時から午後 8 時まであります。1 つずつエントリを
持つテーブルを生成できるテーブルが必要です(2 つの列):starttimeendtime

8:00-9:00
9:00-10:00
....
19:00-20:00

このように。時間の前に日付はありません。

4

2 に答える 2

0

より簡単に、ダミーの日付コンポーネントを含む完全なタイムスタンプを使用し、次のようにキャストしtimeます。

SELECT t::time  AS starttime
     , t::time + interval '1h' AS endtime
FROM   generate_series('2000-1-1 08:00'::timestamp
                     , '2000-1-1 19:00'::timestamp
                     , interval '1h') t;

text列についても同じです。

SELECT to_char(t, 'HH24:MI') AS starttime
     , to_char(t + interval '1h', 'HH24:MI') AS endtime
FROM   generate_series('2000-1-1 08:00'::timestamp
                     , '2000-1-1 19:00'::timestamp
                     , interval '1h') t;
于 2014-03-07T07:13:40.243 に答える