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()関数(負の金額を指定すると、日時の値からその金額が差し引かれます)。