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

MariaDBの日付から短い月の名前を取得する方法

    MariaDBでは、DATE_FORMAT()を使用できます 日付からさまざまな日付部分を返す関数。返すことができるものの1つは、短い月の名前です。例:Nov またはDecNovemberの代わりに またはDecember

    「短い月の名前」形式指定子(%b

    DATE_FORMAT()を使用するときに短い月の名前を返すための鍵 関数は、適切なフォーマット指定子を使用することです。

    MariaDBでは、短い月の名前の形式指定子は%bです。

    デモンストレーションの例を次に示します。

    SELECT DATE_FORMAT('2023-12-25', '%b');

    結果:

    +---------------------------------+
    | DATE_FORMAT('2023-12-25', '%b') |
    +---------------------------------+
    | Dec                             |
    +---------------------------------+

    1年のさまざまな月に実行される別の例を次に示します。

    SELECT 
        DATE_FORMAT('2023-01-25', '%b') AS "1",
        DATE_FORMAT('2023-02-25', '%b') AS "2",
        DATE_FORMAT('2023-03-25', '%b') AS "3",
        DATE_FORMAT('2023-04-25', '%b') AS "4",
        DATE_FORMAT('2023-05-25', '%b') AS "5",
        DATE_FORMAT('2023-06-25', '%b') AS "6",
        DATE_FORMAT('2023-07-25', '%b') AS "7",
        DATE_FORMAT('2023-08-25', '%b') AS "8",
        DATE_FORMAT('2023-09-25', '%b') AS "9",
        DATE_FORMAT('2023-10-25', '%b') AS "10",
        DATE_FORMAT('2023-11-25', '%b') AS "11",
        DATE_FORMAT('2023-12-25', '%b') AS "12";

    結果(垂直出力を使用):

     1: Jan
     2: Feb
     3: Mar
     4: Apr
     5: May
     6: Jun
     7: Jul
     8: Aug
     9: Sep
    10: Oct
    11: Nov
    12: Dec

    他の日付と時刻の単位も返すことができますが、この記事では特に短い月の名前を返すことについて説明しています。 DATE_FORMAT()で使用できるフォーマット指定子のリストについては、MariaDBフォーマット文字列を参照してください。 。

    その他のアプローチ

    月の最初の部分を切り落とすことを含む日付から短い月の名前を取得する他の方法があります。

    ただし、これは上記の方法よりもエラーが発生しやすい可能性があります(さらに複雑です)。この方法を使用すると、特に異なる言語で作業しているときに、予期しない結果が生じる可能性があります。

    これが私が何を意味するかを示すためのいくつかの例です。

    %bを使用する代わりに 前の例で行ったようなフォーマット指定子では、%Mを使用できます。 形式指定子を使用して完全な月の名前を返し、その結果をLEFT()のような関数で短縮して返します。 。

    例:

    SELECT 
        DATE_FORMAT('2023-10-25', '%M') AS Full,
        LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Short;

    結果:

    +---------+-------+
    | Full    | Short |
    +---------+-------+
    | October | Oct   |
    +---------+-------+

    または、CAST()のような関数を使用することもできます。 次のように、3文字のみのデータ型に変換するには:

    SELECT 
        DATE_FORMAT('2023-10-25', '%M') AS Full,
        CAST(DATE_FORMAT('2023-10-25', '%M') AS CHAR(3)) AS Short;

    結果:

    +---------+-------+
    | Full    | Short |
    +---------+-------+
    | October | Oct   |
    +---------+-------+

    これは、英語(およびおそらく他のいくつかの言語)で作業する場合に正常に機能します。しかし、別の言語、たとえばタイ語に切り替えるとどうなるか見てみましょう。

    SELECT 
        DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
        LEFT(DATE_FORMAT('2023-10-25', '%M', 'th_TH'), 3) AS Short;

    結果:

    +--------------------+-----------+
    | Full               | Short     |
    +--------------------+-----------+
    | ตุลาคม              | ตุล        |
    +--------------------+-----------+

    ただし、%bを使用すると次のようになります。 短い月の名前を返すフォーマット指定子:

    SELECT 
        DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
        DATE_FORMAT('2023-10-25', '%b', 'th_TH') AS Short;

    結果:

    +--------------------+----------+
    | Full               | Short    |
    +--------------------+----------+
    | ตุลาคม              | ต.ค.     |
    +--------------------+----------+

    別の結果を返します。

    したがって、%bを使用することをお勧めします 可能な限りフォーマット指定子。


    1. SQLite Group By

    2. ヘブライ文字の代わりにMySQLdb疑問符..?

    3. PostgreSQLでのRandom()のしくみ

    4. WHERE句のCAST(DATETIME AS DATE)