「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
日付またはタイムスタンプ機能の日付部分
次の表は、以下の関数の引数として受け入れられる日付部分名と時間部分名、および省略形を示します。
-
DATEADD
-
DATEDIFF
-
DATE_PART
-
DATE_TRUNC
-
EXTRACT
日付部分または時間部分 | 省略形 |
---|---|
millennium、millennia | mil、mils |
century、centuries | c、cent、cents |
decade、decades | dec、decs |
epoch | epoch (DATE_PART と EXTRACT がサポート) |
year、years | y、yr、yrs |
quarter、quarters | qtr、qtrs |
month、months | mon、mons |
week、weeks |
w DATE_TRUNC と共に使用すると、直近の月曜日の日付を返します。 |
day of week |
dayofweek、dow、dw、weekday (DATE_PART と EXTRACT 関数 がサポート) 0–6 の整数 (0 は日曜日) を返します。 DOW日付部分は、日時形式文字列に使用される曜日(D)日付部分とは異なる動作をします。D は、整数 1–6 (日曜日が 1) に基づきます。詳細については、日時形式の文字列 を参照してください。 |
day of year | dayofyear、doy、dy、yearday (DATE_PART と EXTRACT がサポート) |
day、days | d |
hour、hours | h、hr、hrs |
minute、minutes | m、min、mins |
second、seconds | s、sec、secs |
millisecond、milliseconds | ms、msec、msecs、msecond、mseconds、millisec、millisecs、millisecon |
microsecond、microseconds | microsec、microsecs、microsecond、usecond、useconds、us、usec、usecs |
timezone、timezone_hour、timezone_minute | がサポート DATE_TRUNC そして EXTRACT タイム ゾーンを含むタイムスタンプ(TIMESTAMPTZ)のみ。 |
結果のバリエーション(秒、ミリ秒、マイクロ秒)
クエリー結果のわずかな違いは、異なる日付関数が日付部分として秒、ミリ秒、またはマイクロ秒を指定するときに発生します。
-
EXTRACT関数は、指定した日付部分のみの整数を返します。上位および下位レベルの日付部分は無視されます。指定した日付部分が秒の場合、ミリ秒とマイクロ秒は結果には含まれません。指定された日付部分がミリ秒の場合、秒とマイクロ秒は含まれません。指定した日付部分がマイクロ秒の場合、秒とミリ秒は含まれません。
-
DATE_PART関数は、指定された日付部分に関係なく、タイム スタンプの完全な秒部分を返します。必要に応じて、10進数値または整数を返します。
例えば、次のクエリの結果を比較します。
create table seconds(micro timestamp); insert into seconds values('2009-09-21 11:10:03.189717'); select extract(sec from micro) from seconds; date_part ----------- 3 (1 row) select date_part(sec, micro) from seconds; pgdate_part ------------- 3.189717 (1 row)
CENTURY、EPOCH、DECADE、および MIL ノート
- CENTURY または CENTURIES
-
Amazon Redshift は CENTURY を ###1 の年に始まり
###0
の年に終了すると解釈します。select extract (century from timestamp '2000-12-16 12:21:13'); date_part ----------- 20 (1 row) select extract (century from timestamp '2001-12-16 12:21:13'); date_part ----------- 21 (1 row)
- EPOCH
-
Amazon Redshift の EPOCH の実装は、クラスターのあるタイムゾーンから独立した 1970-01-01 00:00:00.000000 に関連します。クラスターが設置されているタイムゾーンによって、時差による結果を補正する必要がある場合があります。
次の内容の例を以下に示します。
-
EVENT テーブルに基づいて EVENT_EXAMPLE というテーブルを作成します。この CREATE AS コマンドは、DATE_PART 関数を使用してデータ列 (デフォルトでは PGDATE_PART と名づけられる) を作成し、各イベントのエポック値を保存します。
-
PG_TABLE_DEF から EVENT_EXAMPLE の列とデータタイプを選択します。
-
EVENT_EXAMPLE テーブルから EVENTNAME、STARTTIME と PGDATE_PART を選択して、日付と時間の複数の形式を表示します。
-
EVENTNAME と STARTTIME をそれぞれ選択します。1 秒間隔のタイムゾーンを指定しないタイムスタンプを使って PGDATE_PART のエポック値を変換し、CONVERTED_TIMESTAMP という列にその結果を返します。
create table event_example as select eventname, starttime, date_part(epoch, starttime) from event; select "column", type from pg_table_def where tablename='event_example'; column | type ---------------+----------------------------- eventname | character varying(200) starttime | timestamp without time zone pgdate_part | double precision (3 rows)
select eventname, starttime, pgdate_part from event_example; eventname | starttime | pgdate_part ----------------------+---------------------+------------- Mamma Mia! | 2008-01-01 20:00:00 | 1199217600 Spring Awakening | 2008-01-01 15:00:00 | 1199199600 Nas | 2008-01-01 14:30:00 | 1199197800 Hannah Montana | 2008-01-01 19:30:00 | 1199215800 K.D. Lang | 2008-01-01 15:00:00 | 1199199600 Spamalot | 2008-01-02 20:00:00 | 1199304000 Macbeth | 2008-01-02 15:00:00 | 1199286000 The Cherry Orchard | 2008-01-02 14:30:00 | 1199284200 Macbeth | 2008-01-02 19:30:00 | 1199302200 Demi Lovato | 2008-01-02 19:30:00 | 1199302200 select eventname, starttime, timestamp with time zone 'epoch' + pgdate_part * interval '1 second' AS converted_timestamp from event_example; eventname | starttime | converted_timestamp ----------------------+---------------------+--------------------- Mamma Mia! | 2008-01-01 20:00:00 | 2008-01-01 20:00:00 Spring Awakening | 2008-01-01 15:00:00 | 2008-01-01 15:00:00 Nas | 2008-01-01 14:30:00 | 2008-01-01 14:30:00 Hannah Montana | 2008-01-01 19:30:00 | 2008-01-01 19:30:00 K.D. Lang | 2008-01-01 15:00:00 | 2008-01-01 15:00:00 Spamalot | 2008-01-02 20:00:00 | 2008-01-02 20:00:00 Macbeth | 2008-01-02 15:00:00 | 2008-01-02 15:00:00 The Cherry Orchard | 2008-01-02 14:30:00 | 2008-01-02 14:30:00 Macbeth | 2008-01-02 19:30:00 | 2008-01-02 19:30:00 Demi Lovato | 2008-01-02 19:30:00 | 2008-01-02 19:30:00 ...
-
- DECADE または DECADES
-
Amazon Redshift は共通カレンダーに基づいて DECADE または DECADES DATEPART を解釈します。例えば、共通カレンダーが年 1 から始まるため、最初の 10 年 (decade 1) は 0001-01-01 から 0009-12-31 であり、2 番目の 10 年 (decade 2) は 0010-01-01 から 0019-12-31 です。例えば、decade 201 は 2000-01-01 から 2009-12-31 の期間に及びます。
select extract(decade from timestamp '1999-02-16 20:38:40'); date_part ----------- 200 (1 row) select extract(decade from timestamp '2000-02-16 20:38:40'); date_part ----------- 201 (1 row) select extract(decade from timestamp '2010-02-16 20:38:40'); date_part ----------- 202 (1 row)
- MIL または MILS
-
Amazon Redshift は MIL を #001 の年の初めの日に始まり
#000
の年の最後の日に終了すると解釈します。select extract (mil from timestamp '2000-12-16 12:21:13'); date_part ----------- 2 (1 row) select extract (mil from timestamp '2001-12-16 12:21:13'); date_part ----------- 3 (1 row)