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

MariaDBでのPERIOD_DIFF()のしくみ

    MariaDBでは、PERIOD_DIFF() は、2つの期間の間の月数を返す組み込みの日付と時刻の関数です。

    構文

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

    PERIOD_DIFF(P1,P2)

    ここでP1 およびP2 の違いを得る期間です。

    どちらの引数もYYMMまたはYYYYMMの形式です。日付の値ではありません。

    次に例を示します:

    SELECT PERIOD_DIFF(202108, 202101);

    結果:

    +-----------------------------+
    | PERIOD_DIFF(202108, 202101) |
    +-----------------------------+
    |                           7 |
    +-----------------------------+

    この例では、2つの期間の間に7か月の違いがあります。

    順序を切り替える

    最初の期間が2番目の期間よりも早い期間である場合、結果は負の値になります。

    前の例で引数の順序を切り替えると、次のようになります。

    SELECT PERIOD_DIFF(202101, 202108);

    結果:

    +-----------------------------+
    | PERIOD_DIFF(202101, 202108) |
    +-----------------------------+
    |                          -7 |
    +-----------------------------+

    2桁の年

    引数のいずれかに2桁の年が含まれている場合、00から69までの値は2000から2069に変換され、70からの値は1970以上に変換されます。

    例:

    SELECT 
        PERIOD_DIFF(6911, 6912),
        PERIOD_DIFF(6911, 7001);

    結果:

    +-------------------------+-------------------------+
    | PERIOD_DIFF(6911, 6912) | PERIOD_DIFF(6911, 7001) |
    +-------------------------+-------------------------+
    |                      -1 |                    1198 |
    +-------------------------+-------------------------+

    引数がありません

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

    SELECT PERIOD_DIFF();

    結果:

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

    そして別の例:

    SELECT PERIOD_DIFF( 6912 );

    結果:

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

    1. Oracleでテーブルのインデックスを見つける方法

    2. JavaストアドプロシージャとPL/SQLストアドプロシージャ

    3. カウントを使用して発生数を見つける

    4. DriverManagergetConnectionの接続タイムアウト