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

LAST_DAY()がMariaDBでどのように機能するか

    MariaDBでは、LAST_DAY() は、特定の日付の月末日を返す組み込みの日付と時刻の関数です。

    1つの引数を受け入れます。これは、その月の最後の日を検索する日付です。

    構文

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

    LAST_DAY(date)

    date は、その月の最後の日を検索する日付式です。

    次に例を示します:

    SELECT LAST_DAY('2030-02-01');

    結果:

    +------------------------+
    | LAST_DAY('2030-02-01') |
    +------------------------+
    | 2030-02-28             |
    +------------------------+

    この場合、2月の日付を使用しています。実は、2月はその年に28日あります。

    日付を次のうるう年にインクリメントすると、次のようになります。

    SELECT LAST_DAY('2032-02-01');

    結果:

    +------------------------+
    | LAST_DAY('2032-02-01') |
    +------------------------+
    | 2032-02-29             |
    +------------------------+

    日時の値

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

    SELECT LAST_DAY('2030-02-01 10:30:45');

    結果:

    +---------------------------------+
    | LAST_DAY('2030-02-01 10:30:45') |
    +---------------------------------+
    | 2030-02-28                      |
    +---------------------------------+

    ゼロ日付

    日付がゼロの場合、nullになります 。

    例:

    SELECT LAST_DAY('0000-00-00');

    結果:

    +------------------------+
    | LAST_DAY('0000-00-00') |
    +------------------------+
    | NULL                   |
    +------------------------+

    数値日付

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

    SELECT LAST_DAY(20301125);

    結果:

    +--------------------+
    | LAST_DAY(20301125) |
    +--------------------+
    | 2030-11-30         |
    +--------------------+

    または、次の場合でも(2桁の年を使用):

    SELECT LAST_DAY(301125);

    結果:

    +------------------+
    | LAST_DAY(301125) |
    +------------------+
    | 2030-11-30       |
    +------------------+

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

    SELECT LAST_DAY(20301135);

    結果:

    +--------------------+
    | LAST_DAY(20301135) |
    +--------------------+
    | NULL               |
    +--------------------+
    1 row in set, 1 warning (0.000 sec)

    警告は次のように確認できます:

    SHOW WARNINGS;

    結果:

    +---------+------+--------------------------------------+
    | Level   | Code | Message                              |
    +---------+------+--------------------------------------+
    | Warning | 1292 | Incorrect datetime value: '20301135' |
    +---------+------+--------------------------------------+

    その他の区切り文字

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

    SELECT 
        LAST_DAY('2030/06/25'),
        LAST_DAY('2030,06,25'),
        LAST_DAY('2030:06:25'),
        LAST_DAY('2030;06!25');

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

    LAST_DAY('2030/06/25'): 2030-06-30
    LAST_DAY('2030,06,25'): 2030-06-30
    LAST_DAY('2030:06:25'): 2030-06-30
    LAST_DAY('2030;06!25'): 2030-06-30

    現在の日付

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

    SELECT 
        NOW(),
        LAST_DAY(NOW());

    結果:

    +---------------------+-----------------+
    | NOW()               | LAST_DAY(NOW()) |
    +---------------------+-----------------+
    | 2021-05-18 09:39:01 | 2021-05-31      |
    +---------------------+-----------------+
    >

    無効な引数

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

    SELECT LAST_DAY('2030-65-78');

    結果:

    +------------------------+
    | LAST_DAY('2030-65-78') |
    +------------------------+
    | NULL                   |
    +------------------------+
    1 row in set, 1 warning (0.000 sec)

    警告を確認してください:

    SHOW WARNINGS;

    結果:

    +---------+------+----------------------------------------+
    | Level   | Code | Message                                |
    +---------+------+----------------------------------------+
    | Warning | 1292 | Incorrect datetime value: '2030-65-78' |
    +---------+------+----------------------------------------+

    引数がありません

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

    SELECT LAST_DAY();

    結果:

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

    そして別の例:

    SELECT LAST_DAY('2030-12-10', '2031-12-10');

    結果:

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

    1. SQL、空のセルの処理

    2. 既存のテーブルからテーブル(構造)を作成する

    3. MySQL VARCHARの最大サイズはいくつですか?

    4. SQLServerで現在使用されている言語を取得する