sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLの日付から月の名前を取得する

    PostgreSQLに精通している場合は、EXTRACT()を使用できることをご存知かもしれません。 およびDATE_PART() 日付から月を抽出する関数。ただし、これらの関数では、月の数値のみを抽出できます。 。

    月の名前が必要な場合はどうなりますか ?

    TO_CHAR()を使用して、日付から月の名前を取得できます 働き。この関数は、タイムスタンプと引数として指定したテンプレートパターンに基づいて文字列を返します。

    これが簡単な例です。

     SELECT TO_CHAR(TIMESTAMP '2020-12-16 10:41:35'、'Month')AS "Month"; 

    結果:

    月-------------12月

    この場合、'Month'のテンプレートパターンを指定しました 、そのため、タイムスタンプ値から月が返されました。

    小文字、大文字、および大文字と小文字の区別

    月は小文字、大文字、または大文字で返すことができます。テンプレートパターン(2番目の引数)に使用するケースによって、どちらを決定します。

    これが私の意味を示す例です。

     SELECT TO_CHAR(current_timestamp、'month')AS "month"、TO_CHAR(current_timestamp、'Month')AS "Month"、TO_CHAR(current_timestamp、'MONTH')AS "MONTH"; 

    結果:

    <前>月|月|月-----------+----------- +-----------3月| 3月| 3月

    使用するケースに関係なく、すべての結果は9文字まで空白で埋められます。

    短い月の名前

    短い月の名前を使用して結果をフォーマットするように指定することもできます。

     SELECT TO_CHAR(current_timestamp、'mon')AS "mon"、TO_CHAR(current_timestamp、'Mon')AS "Mon"、TO_CHAR(current_timestamp、'MON')AS "MON"; 

    結果:

    月|月| MON ----- + ----- + ----- mar | 3月| 3月

    1. SQL Serverで「datetime2」を「datetimeoffset」に変換します(T-SQLの例)

    2. 個々の行をカウントするのではなく、すべての行をカウントするSQL

    3. SELECT DISTINCTが指定されている場合、ORDERBY項目は選択リストに表示される必要があります

    4. Oracle11gでのXMLtable