日時型を使用する例
以下に、Amazon Redshift でサポートされている日時タイプを操作する例を示します。
日付の例
次の例では、形式が異なる複数の日付を挿入して、出力を表示します。
create table datetable (start_date date, end_date date);
insert into datetable values ('2008-06-01','2008-12-31'); insert into datetable values ('Jun 1,2008','20081231');
select * from datetable order by 1; start_date | end_date ----------------------- 2008-06-01 | 2008-12-31 2008-06-01 | 2008-12-31
DATE 列にタイムスタンプ値を挿入した場合、時刻部分が無視され、日付のみロードされます。
時間の例
次の例では、形式の異なる複数の TIME および TIMETZ 値を挿入して、出力を表示します。
create table timetable (start_time time, end_time timetz);
insert into timetable values ('19:11:19','20:41:19 UTC'); insert into timetable values ('191119', '204119 UTC');
select * from timetable order by 1; start_time | end_time ------------------------ 19:11:19 | 20:41:19+00 19:11:19 | 20:41:19+00
タイムスタンプの例
日付を TIMESTAMP 列または TIMESTAMPTZ 列に挿入すると、時刻はデフォルトでは午前 0 時になります。例えば、リテラル 20081231
を挿入すると、格納される値は 2008-12-31
00:00:00
です。
現在のセッションのタイムゾーンを変更するには、SET コマンドを使用して timezone 設定パラメータを設定します。
次の例では、形式の異なる複数のタイムスタンプを挿入して、結果のテーブルを表示します。
create table tstamp(timeofday timestamp, timeofdaytz timestamptz); insert into tstamp values('Jun 1,2008 09:59:59', 'Jun 1,2008 09:59:59 EST' ); insert into tstamp values('Dec 31,2008 18:20','Dec 31,2008 18:20'); insert into tstamp values('Jun 1,2008 09:59:59 EST', 'Jun 1,2008 09:59:59'); SELECT * FROM tstamp;
+---------------------+------------------------+ | timeofday | timeofdaytz | +---------------------+------------------------+ | 2008-06-01 09:59:59 | 2008-06-01 14:59:59+00 | | 2008-12-31 18:20:00 | 2008-12-31 18:20:00+00 | | 2008-06-01 09:59:59 | 2008-06-01 09:59:59+00 | +---------------------+------------------------+