MariaDBでは、SUBTIME()
は、時刻または日時式から金額を減算する組み込みの日時関数です。
これにより、その式を渡すことによって時刻または日時式を変更したり、その式から減算する時刻式を変更したりできます。 追加する必要がある場合は、負の金額を渡すことができます 時間表現に。
構文
構文は次のようになります:
SUBTIME(expr1,expr2)
ここで、expr1
は時刻または日時の式であり、expr2
時間表現です。
例
次に例を示します:
SELECT SUBTIME('10:00:00', '02:30:45');
結果:
+---------------------------------+ | SUBTIME('10:00:00', '02:30:45') | +---------------------------------+ | 07:29:15 | +---------------------------------+
日時式
最初の引数は日時式にすることもできます:
SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45');
結果:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '22:30:45') | +--------------------------------------------+ | 2021-04-30 11:29:15 | +--------------------------------------------+
この場合、日付を前の日と月に戻すのに十分な時間が差し引かれました。
ルーザー形式の時間式
MariaDBでは、先行ゼロを削除したり、その日の値を提供したりするなど、より緩い形式で時間を割り当てることができます。
したがって、これを行うことができます:
SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456');
結果:
+----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') | +----------------------------------------------------+ | 2020-04-30 08:58:58.876544 | +----------------------------------------------------+
負の間隔
日の部分に負の間隔を指定する追加 その量は時間/日時になります。
例:
SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456');
結果:
+-----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') | +-----------------------------------------------------+ | 2022-05-02 11:01:01.123456 | +-----------------------------------------------------+
ヌル引数
引数がnull
の場合 、結果はnull
です :
SELECT
SUBTIME('10:00:00', null),
SUBTIME(null, '02:30:45'),
SUBTIME(null, null);
結果:
+---------------------------+---------------------------+---------------------+ | SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) | +---------------------------+---------------------------+---------------------+ | NULL | NULL | NULL | +---------------------------+---------------------------+---------------------+
引数がありません
SUBTIME()
を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT SUBTIME();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'