MariaDBの日時値から1時間以上を引くためのいくつかのオプションがあります。
SUBTIME()
機能
SUBTIME()
時間または日時の値から指定された時間を減算します。
例:
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00');
結果:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '01:00:00') | +--------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------+
分、秒などの他の時間単位を変更することもできます。
DATE_SUB()
機能
DATE_SUB()
関数を使用すると、日付または日時式から特定の数の日付/時刻単位を減算できます。したがって、この関数を使用して、特定の時間数を引いた日時の値を返すことができます。
例:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR);
結果:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------------+
日付と時刻の複合単位を使用することもできます。たとえば、何時間も何分も一度に行うことができます。
例:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE);
結果:
+---------------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) | +---------------------------------------------------------------+ | 2021-04-30 18:30:00 | +---------------------------------------------------------------+
日付だけを渡す
日付の値だけを指定すると、次のようになります。
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR);
結果:
+-----------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-04-30 23:00:00 | +-----------------------------------------+
時刻は00:00:00から始まると想定しているため、HOUR
そこから金額が差し引かれます。
複数時間
1時間以上引く必要がある場合は、1
の代わりにその数値を使用してください 。ただし、HOUR
キーワードは関係なく複数形のままです:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR);
結果:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 08:00:00 | +--------------------------------------------------+
減算演算子(-
)
日時式から時間を減算する別の方法は、減算演算子(-
)を使用することです。 )、マイナス演算子とも呼ばれます。
例:
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR;
結果:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
加算演算子(+
)
または、加算演算子(+
)を使用することもできます。 )負の金額と一緒に。
例:
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR;
結果:
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
時間を差し引く他の方法
日時の値から1時間以上を引くために使用できる他のアプローチは次のとおりです。
-
ADDTIME()
関数(負の金額を指定すると、日時の値からその金額が差し引かれます)。 -
SUBDATE()
関数(これはDATE_SUB()
の同義語です 同じ構文で使用した場合) -
DATE_ADD()
関数(負の金額を指定すると、日時の値からその金額が差し引かれます)。 -
ADDDATE()
関数(負の金額を指定すると、日時の値からその金額が差し引かれます)。