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

MariaDBでのDATEDIFF()のしくみ

    MariaDBでは、DATEDIFF() は、2つの日付の差を日数で返す組み込みの日付と時刻の関数です。

    2つの引数を受け入れます。どちらも日付式または日時式です。次に、最初の日付から2番目の日付を差し引きます。

    構文

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

    DATEDIFF(expr1,expr2)

    次に、expr1 - expr2を返します。 。

    次に例を示します:

    SELECT DATEDIFF('2030-01-25', '2030-01-20');

    結果:

    +--------------------------------------+
    | DATEDIFF('2030-01-25', '2030-01-20') |
    +--------------------------------------+
    |                                    5 |
    +--------------------------------------+

    ここでも同じですが、日付が入れ替わっています:

    SELECT DATEDIFF('2030-01-20', '2030-01-25');

    結果:

    +--------------------------------------+
    | DATEDIFF('2030-01-20', '2030-01-25') |
    +--------------------------------------+
    |                                   -5 |
    +--------------------------------------+

    日時の値

    日時の値を使用する例を次に示します。

    SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');

    結果:

    +--------------------------------------------------------+
    | DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
    +--------------------------------------------------------+
    |                                                      5 |
    +--------------------------------------------------------+

    別の例を次に示します。

    SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');

    結果:

    +--------------------------------------------------------+
    | DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
    +--------------------------------------------------------+
    |                                                      0 |
    +--------------------------------------------------------+

    この場合、ほぼ1日でしたが、完全ではなかったため、結果は0になります。 。

    現在の日付

    ここでは、NOW()を渡します 2番目の引数として:

    SELECT 
        NOW(),
        DATEDIFF('2030-01-20', NOW());

    結果:

    +---------------------+-------------------------------+
    | NOW()               | DATEDIFF('2030-01-20', NOW()) |
    +---------------------+-------------------------------+
    | 2021-05-10 10:03:08 |                          3177 |
    +---------------------+-------------------------------+

    この場合、現在から2番目の日付までの間に3、177日があります。

    無効な引数

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

    SELECT DATEDIFF('Homer', 'Simpson');

    結果:

    +------------------------------+
    | DATEDIFF('Homer', 'Simpson') |
    +------------------------------+
    |                         NULL |
    +------------------------------+

    引数がありません

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

    SELECT DATEDIFF();

    結果:

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

    そして:

    SELECT DATEDIFF('2030-05-21');

    結果:

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

    1. LINQ to Entitiesは、メソッド'System.String ToString()'メソッドを認識せず、このメソッドをストア式に変換できません

    2. 複数のデータベースに準拠したオンラインSQL構文チェッカー

    3. MySQLでのMAKE_SET()関数のしくみ

    4. LIMITを使用するときに行の総数を取得しますか?