翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
DATE_PART 関数
DATE_PART は式から日付部分値を抽出します。DATE_PART は PGDATE_PART 関数のシノニムです。
構文
DATE_PART(datepart, {date|timestamp})
引数
- datepart
-
関数が実行される日付の値の特定部分 (例: 年、月、または日) の識別子リテラルまたは文字列。詳細については、「日付関数またはタイムスタンプ関数の日付部分」を参照してください。
- {date|timestamp}
-
日付列、タイムスタンプ列、または暗黙的に日付またはタイムスタンプに変換される式。日付またはタイムスタンプの列または式には、datepart で指定された日付部分が含まれている必要があります。
戻り型
DOUBLE
例
DATE_PART 関数のデフォルトの列名は ですpgdate_part
。
次の例では、タイムスタンプリテラルから分を見つけます。
SELECT DATE_PART(minute, timestamp '20230104 04:05:06.789');
pgdate_part ----------- 5
次の例では、タイムスタンプリテラルから週番号を見つけます。週番号の計算は 8601 ISO 標準に従います。詳細については、Wikipedia ISO の「8601
SELECT DATE_PART(week, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 18
次の例では、タイムスタンプリテラルから日付を見つけます。
SELECT DATE_PART(day, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 2
次の例では、タイムスタンプリテラルから曜日を見つけます。週番号の計算は 8601 ISO 標準に従います。詳細については、Wikipedia のISO「8601
SELECT DATE_PART(dayofweek, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 1
次の例では、タイムスタンプリテラルから世紀を見つけます。世紀の計算は 8601 ISO 標準に従います。詳細については、Wikipedia のISO「8601
SELECT DATE_PART(century, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 21
次の例は、タイムスタンプリテラルからミレニアムを検出します。ミレニアム計算は 8601 ISO 標準に従います。詳細については、Wikipedia ISO の「8601
SELECT DATE_PART(millennium, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 3
次の例は、タイムスタンプリテラルからマイクロ秒を検出します。マイクロ秒の計算は 8601 ISO 標準に従います。詳細については、Wikipedia ISO の「8601
SELECT DATE_PART(microsecond, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 789000
次の例では、日付リテラルから月を見つけます。
SELECT DATE_PART(month, date '20220502');
pgdate_part ----------- 5
次の例では、テーブルの列に DATE_PART 関数を適用します。
SELECT date_part(w, listtime) AS weeks, listtime FROM listing WHERE listid=10
weeks | listtime ------+--------------------- 25 | 2008-06-17 09:44:54 (1 row)
完全形あるいは省略形の日付部分に名前を付けることができます。この場合、w は週を指します。
曜日の日付部分は、0~6 の整数を返します (0 は日曜日)。DATE_PART と dow (DAYOFWEEK) を使用して、土曜日のイベントを表示します。
SELECT date_part(dow, starttime) AS dow, starttime FROM event WHERE date_part(dow, starttime)=6 ORDER BY 2,1;
dow | starttime -----+--------------------- 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 ... (1147 rows)