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

MariaDBでのDAYNAME()のしくみ

    MariaDBでは、DAYNAME() は、特定の日付の曜日の名前を返す組み込みの日付と時刻の関数です。

    曜日名を抽出する日付である1つの引数を受け入れます。

    構文

    構文は次のようになります:

    DAYNAME(date)

    date は日の名前を取得する日付です。

    次に例を示します:

    SELECT DAYNAME('2045-10-17');

    結果:

    +-----------------------+
    | DAYNAME('2045-10-17') |
    +-----------------------+
    | Tuesday               |
    +-----------------------+

    言語

    日の名前に使用される言語は、lc_time_namesの値によって制御されます システム変数。

    これが結果にどのように影響するかを示す例を次に示します。

    SET lc_time_names = 'de_DE';
    SELECT DAYNAME('2045-10-17');

    結果:

    +-----------------------+
    | DAYNAME('2045-10-17') |
    +-----------------------+
    | Tuesday               |
    +-----------------------+

    そして、en_USに切り替えます 、これがデフォルトです:

    SET lc_time_names = 'en_US';
    SELECT DAYNAME('2045-10-17');

    結果:

    +-----------------------+
    | DAYNAME('2045-10-17') |
    +-----------------------+
    | Tuesday               |
    +-----------------------+

    MariaDBでサポートされているロケールのリストと、使用可能なロケールの独自のリストを返す方法は次のとおりです。

    その間、lc_time_namesの値を確認する方法を説明する投稿があります システム変数。

    日時の値

    日時の値でも機能します:

    SELECT DAYNAME('2030-01-25 10:30:45');

    結果:

    +--------------------------------+
    | DAYNAME('2030-01-25 10:30:45') |
    +--------------------------------+
    | Friday                         |
    +--------------------------------+

    ゼロデイ

    日付にゼロデイがあると、nullが返されます :

    SELECT DAYNAME('2030-00-00');

    結果:

    +-----------------------+
    | DAYNAME('2030-00-00') |
    +-----------------------+
    | NULL                  |
    +-----------------------+

    数値日付

    日付として意味がある限り、日付を数値として渡すこともできます。

    SELECT DAYNAME(20201108);

    結果:

    +-------------------+
    | DAYNAME(20201108) |
    +-------------------+
    | Sunday            |
    +-------------------+

    2桁の年で十分です:

    SELECT DAYNAME(201108);

    結果:

    +-----------------+
    | DAYNAME(201108) |
    +-----------------+
    | Sunday          |
    +-----------------+

    しかし、それは日付として意味をなさなければなりません。月の部分を無効な月に増やすとどうなりますか:

    SELECT DAYNAME(209908);

    結果:

    +-----------------+
    | DAYNAME(209908) |
    +-----------------+
    | NULL            |
    +-----------------+

    その他の区切り文字

    日付には他の区切り文字を使用できます。 MariaDBは、日付の区切り文字に関しては非常に寛容です。いくつかの有効な例を次に示します。

    SELECT 
        DAYNAME('2027/08/19'),
        DAYNAME('2027,08,19'),
        DAYNAME('2027:08:19'),
        DAYNAME('2027;08!19');

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

    DAYNAME('2027/08/19'): Thursday
    DAYNAME('2027,08,19'): Thursday
    DAYNAME('2027:08:19'): Thursday
    DAYNAME('2027;08!19'): Thursday

    現在の日付

    NOW()を渡すことができます 現在の日付を使用する日付引数として:

    SELECT 
        NOW(),
        DAYNAME(NOW());

    結果:

    +---------------------+----------------+
    | NOW()               | DAYNAME(NOW()) |
    +---------------------+----------------+
    | 2021-05-13 13:29:10 | Thursday       |
    +---------------------+----------------+

    無効な引数

    無効な引数が渡されると、DAYNAME() nullを返します :

    SELECT DAYNAME('Dang!');

    結果:

    +------------------+
    | DAYNAME('Dang!') |
    +------------------+
    | NULL             |
    +------------------+

    引数がありません

    DAYNAME()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:

    SELECT DAYNAME();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYNAME'

    そして別の例:

    SELECT DAYNAME('2030-01-25', '2045-05-08');

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYNAME'

    1. java.lang.NoSuchFieldError:Spring 3、maven、JPA、c3p0で休止状態のNONE

    2. SQLServerでの動的SQL実行

    3. MariaDBで小文字を含む行を見つける4つの方法

    4. mysqlピボット/クロス集計クエリ