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

MariaDBでサフィックスを使用して日番号を返す方法

    MariaDBには、特定の日付を特定の形式で返す日付と時刻の関数の大規模なコレクションが含まれています。

    できることの1つは、関連する「st / nd / rd/th」サフィックスが付いた日番号を返すことです。たとえば、たとえば2025年7月10日として返されるのではなく、2025年7月10日として返されます。

    以下は、MariaDBの日番号に関連するサフィックスを追加する例です。

    関連するサフィックスが付いた日番号を返すには、DATE_FORMAT()を使用できます。 機能。

    この関数は、日付とフォーマット文字列を受け入れます。フォーマット文字列は、指定された日付のフォーマット方法を指定します。フォーマット文字列は、1つ以上のフォーマット指定子で構成されます。

    %D format指定子は、英語のサフィックスが付いた日を返します。したがって、このフォーマット指定子を含めると、stのいずれかで日が返されます。 、ndrd 、またはth 実際の日数に応じて追加されます。

    例:

    SELECT DATE_FORMAT('2030-01-01', '%D %M %Y');

    結果:

    +---------------------------------------+
    | DATE_FORMAT('2030-01-01', '%D %M %Y') |
    +---------------------------------------+
    | 1st January 2030                      |
    +---------------------------------------+

    ここでは、3つのフォーマット指定子(%D %M %Y)を組み合わせました。 )完全な日付を作成します。この場合、日番号は1でした。 したがって、st 自動的に追加されます。

    さまざまな接尾辞を示すために、さらにいくつかの例を示します。

    SELECT 
        DATE_FORMAT('2030-01-01', '%D') AS "1",
        DATE_FORMAT('2030-01-02', '%D') AS "2",
        DATE_FORMAT('2030-01-03', '%D') AS "3",
        DATE_FORMAT('2030-01-04', '%D') AS "4",
        DATE_FORMAT('2030-01-20', '%D') AS "20",
        DATE_FORMAT('2030-01-21', '%D') AS "21",
        DATE_FORMAT('2030-01-22', '%D') AS "22",
        DATE_FORMAT('2030-01-23', '%D') AS "23",
        DATE_FORMAT('2030-01-24', '%D') AS "24";

    結果:

    +------+------+------+------+------+------+------+------+------+
    | 1    | 2    | 3    | 4    | 20   | 21   | 22   | 23   | 24   |
    +------+------+------+------+------+------+------+------+------+
    | 1st  | 2nd  | 3rd  | 4th  | 20th | 21st | 22nd | 23rd | 24th |
    +------+------+------+------+------+------+------+------+------+

    この場合、私は1つのフォーマット指定子(%Dのみを使用します )例を簡潔にするためですが、フォーマット文字列には任意の数のフォーマット指定子を含めることができます。詳細については、このMariaDB形式指定子のリストを参照してください。


    1. PL/pgSQLで使用する変数にクエリ結果を格納する

    2. 不明な列数でのSQLServer2005のピボット

    3. PL/pgSQL関数のSELECTまたはPERFORM

    4. PostgreSQLの主キーとしてのUUIDは、インデックスのパフォーマンスを低下させますか?