PostgreSQLには、日付から日、月、年を取得するためのいくつかの方法が用意されています。
すぐに頭に浮かぶ3つの機能は次のとおりです。 DATE_PART()
、EXTRACT()
、およびTO_CHAR()
。
EXTRACT()
EXTRACT()
function 年、月、時、分などのサブフィールドを日付/時刻の値から取得します。
例:
SELECT EXTRACT(YEAR FROM date '2035-10-30');
結果:
2035
この関数を3回別々に呼び出すことで、別々のフィールドに異なる日付部分を返すことができます。
SELECT
EXTRACT(DAY FROM date '2035-10-30') AS "Day",
EXTRACT(DOW FROM date '2035-10-30') AS "DOW",
EXTRACT(DOY FROM date '2035-10-30') AS "DOY",
EXTRACT(MONTH FROM date '2035-10-30') AS "Month",
EXTRACT(YEAR FROM date '2035-10-30') AS "Year";
結果:
Day | DOW | DOY | Month | Year -----+-----+-----+-------+------ 30 | 2 | 303 | 10 | 2035
ここでは、日付、曜日、曜日、月、および年を日付から返しました。
その他の例、およびこの関数によって返されるフィールド名のリストについては、PostgreSQLでのExtract()の動作を参照してください。
DATE_PART()
DATE_PART()
関数はEXTRACT()
と同等です 、ただし構文は少し異なります。
SELECT
DATE_PART('DAY', date '2035-10-30') AS "Day",
DATE_PART('DOW', date '2035-10-30') AS "DOW",
DATE_PART('DOY', date '2035-10-30') AS "DOY",
DATE_PART('MONTH', date '2035-10-30') AS "Month",
DATE_PART('YEAR', date '2035-10-30') AS "Year";
結果:
Day | DOW | DOY | Month | Year -----+-----+-----+-------+------ 30 | 2 | 303 | 10 | 2035
この関数では、最初の引数を文字列として指定し、FROM
の代わりにコンマで2つの引数を区切る必要があります。 キーワード。
TO_CHAR()
TO_CHAR()
関数は、より多様な出力を提供するために使用できるという点で、より柔軟です。たとえば、この関数を使用して、日、月、年をすべて1つのフィールドに返すことができます。
SELECT TO_CHAR(date '2045-12-02', 'Day, DDth Month YYYY');
結果:
Saturday , 02nd December 2045
fm
を使用できます 適用される可能性のあるパディングを抑制するためのテンプレート修飾子:
SELECT TO_CHAR(date '2165-04-01', 'fmDay, fmDDth fmMonth YYYY');
結果:
Monday, 1st April 2165
th
にも注意してください テンプレート修飾子は、st
かどうかを知るのに十分賢いです 、nd
、rd
、またはth
追加する必要があります。
TO_CHAR()
へのさまざまな呼び出しを使用する例を次に示します。 さまざまな日付部分を別々のフィールドに出力するには:
SELECT
TO_CHAR(date '2165-04-01', 'fmDay') AS "Day",
TO_CHAR(date '2165-04-01', 'fmDD') AS "DD",
TO_CHAR(date '2165-04-01', 'fmMonth') AS "Month",
TO_CHAR(date '2165-04-01', 'YYYY') AS "YYYY";
結果:
Day | DD | Month | YYYY --------+----+-------+------ Monday | 1 | April | 2165