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

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

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

    「ShortDayName」フォーマット指定子(%a

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

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

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

    SELECT DATE_FORMAT('2023-07-25', '%a');

    結果:

    +---------------------------------+
    | DATE_FORMAT('2023-07-25', '%a') |
    +---------------------------------+
    | Tue                             |
    +---------------------------------+

    週のさまざまな曜日を実行する別の例を次に示します。

    SELECT 
        DATE_FORMAT('2023-07-24', '%a') AS "1",
        DATE_FORMAT('2023-07-25', '%a') AS "2",
        DATE_FORMAT('2023-07-26', '%a') AS "3",
        DATE_FORMAT('2023-07-27', '%a') AS "4",
        DATE_FORMAT('2023-07-28', '%a') AS "5",
        DATE_FORMAT('2023-07-29', '%a') AS "6",
        DATE_FORMAT('2023-07-30', '%a') AS "7";

    結果:

    +------+------+------+------+------+------+------+
    | 1    | 2    | 3    | 4    | 5    | 6    | 7    |
    +------+------+------+------+------+------+------+
    | Mon  | Tue  | Wed  | Thu  | Fri  | Sat  | Sun  |
    +------+------+------+------+------+------+------+

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

    その他のアプローチ

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

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

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

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

    例:

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

    結果:

    +---------+-------+
    | Full    | Short |
    +---------+-------+
    | Tuesday | Tue   |
    +---------+-------+

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

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

    結果:

    +---------+-------+
    | Full    | Short |
    +---------+-------+
    | Tuesday | Tue   |
    +---------+-------+

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

    SELECT 
        DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
        LEFT(DATE_FORMAT('2023-07-25', '%W', 'ja_JP'), 3) AS Short;

    結果:

    +-----------+-----------+
    | Full      | Short     |
    +-----------+-----------+
    | 火曜日     | 火曜日     |
    +-----------+-----------+

    この場合、違いはありません。

    対照的に、%aを使用すると次のようになります 短い日の名前を返すフォーマット指定子:

    SELECT 
        DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
        DATE_FORMAT('2023-07-25', '%a', 'ja_JP') AS Short;

    結果:

    +-----------+-------+
    | Full      | Short |
    +-----------+-------+
    | 火曜日     | 火    |
    +-----------+-------+

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


    1. SQLServerでSELECTから更新する方法

    2. マルチDCPostgreSQL:VPNを介して別の地理的場所にスタンバイノードを設定する

    3. SQL Server 2014のプロセッサの選択–パート2

    4. SQLServerの復元モードからデータベースをオンラインにする方法