日付またはタイムスタンプ機能の日付部分 - Amazon Redshift

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

日付またはタイムスタンプ機能の日付部分

次の表は、以下の関数の引数として受け入れられる日付部分名と時間部分名、および省略形を示します。

  • DATEADD

  • DATEDIFF

  • DATE_PART

  • DATE_TRUNC

  • EXTRACT

日付部分または時間部分 省略形
millennium、millennia mil、mils
century、centuries c、cent、cents
decade、decades dec、decs
epoch epoch (DATE_PARTEXTRACT がサポート)
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_PARTEXTRACT がサポート)
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 に関連します。クラスターが設置されているタイムゾーンによって、時差による結果を補正する必要がある場合があります。

次の内容の例を以下に示します。

  1. EVENT テーブルに基づいて EVENT_EXAMPLE というテーブルを作成します。この CREATE AS コマンドは、DATE_PART 関数を使用してデータ列 (デフォルトでは PGDATE_PART と名づけられる) を作成し、各イベントのエポック値を保存します。

  2. PG_TABLE_DEF から EVENT_EXAMPLE の列とデータタイプを選択します。

  3. EVENT_EXAMPLE テーブルから EVENTNAME、STARTTIME と PGDATE_PART を選択して、日付と時間の複数の形式を表示します。

  4. 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)