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

MariaDBでのADD_MONTHS()のしくみ

    MariaDBでは、ADD_MONTHS() は、指定された月数を日付に追加し、結果を返す組み込みの日付と時刻の関数です。

    日付には、日付、日時、またはタイムスタンプの値を指定できます。

    この関数は、Oracleの互換性を強化するためにMariaDB10.6.1で導入されました。 MariaDBで日付に月を追加するには、他に少なくとも6つの方法があります。

    構文

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

    ADD_MONTHS(date, months)

    date は日付で、months 追加する月数です。

    次に例を示します:

    SELECT ADD_MONTHS('2020-01-01', 3);

    結果:

    +-----------------------------+
    | ADD_MONTHS('2020-01-01', 3) |
    +-----------------------------+
    | 2020-04-01                  |
    +-----------------------------+

    月を引く

    日付から月を引くには、2番目の引数に負の値を使用します。

    例:

    SELECT ADD_MONTHS('2020-01-01', -3);

    結果:

    +------------------------------+
    | ADD_MONTHS('2020-01-01', -3) |
    +------------------------------+
    | 2019-10-01                   |
    +------------------------------+

    数値コンテキスト

    必要に応じて、日付を数値形式で提供できます。

    SELECT ADD_MONTHS(20200101, 3);

    結果:

    +-------------------------+
    | ADD_MONTHS(20200101, 3) |
    +-------------------------+
    | 2020-04-01              |
    +-------------------------+

    無効な日付

    日付が無効な場合は、ADD_MONTHS() nullを返します 警告付き:

    SELECT ADD_MONTHS('2020-01-51', 3);

    結果:

    +-----------------------------+
    | ADD_MONTHS('2020-01-51', 3) |
    +-----------------------------+
    | NULL                        |
    +-----------------------------+
    1 row in set, 1 warning (0.003 sec)

    警告を確認しましょう:

    SHOW WARNINGS;

    結果:

    +---------+------+----------------------------------------+
    | Level   | Code | Message                                |
    +---------+------+----------------------------------------+
    | Warning | 1292 | Incorrect datetime value: '2020-01-51' |
    +---------+------+----------------------------------------+

    ヌル引数

    ADD_MONTHS() nullを返します 引数がnullの場合 :

    SELECT ADD_MONTHS('2020-01-01', null);

    結果:

    +--------------------------------+
    | ADD_MONTHS('2020-01-01', null) |
    +--------------------------------+
    | NULL                           |
    +--------------------------------+

    引数の数が無効です

    無効な数の引数を渡すと、エラーが発生します:

    SELECT ADD_MONTHS(3);

    結果:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

    1. SQLPLUSを使用してコマンドラインでPL/SQLスクリプトに引数を渡すにはどうすればよいですか?

    2. PostgreSQLでtransaction_timestamp()がどのように機能するか

    3. Mac OS XにMySQLdb(MySQLへのPythonデータアクセスライブラリ)をインストールするにはどうすればよいですか?

    4. Java Oracle localhost接続エラー(ORA-12505)