MySQLのTIMESTAMPDIFF()
関数は、2つの日付または日時式の違いを見つけるために使用されます。 2つの日付/日時の値と、差を決定するために使用する単位(日など)を渡す必要があります。 、月 、など)。 TIMESTAMPDIFF()
関数は、指定された単位の差を返します。
構文
まず、構文は次のとおりです。
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
ここでは、 unit
差を表すために使用する単位です(例:日、月、年など)。 datetime_expr1
は最初の日付/日時の値であり、 datetime_expr2
2番目です。
この関数は、 datetime_expr1
を減算します datetime_expr2
から 結果をunit
で返します s。結果は整数として返されます。
有効な単位
ユニットコード> 引数は次のいずれかになります:
-
MICROSECOND
-
SECOND
-
MINUTE
-
HOUR
-
DAY
週
-
MONTH
-
QUARTER
-
YEAR
例1-日数の違い
この関数の基本的な使用法を示す例を次に示します。ここでは、2つの日付式を比較し、それらの差を日数で返します。
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
結果:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
例2–時間の違い
この例では、前の例と同じ値を比較しますが、ここでは、差を時間で返します。 。
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
結果:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
例3–「日時」の例
差を分単位で返す例を次に示します。この場合、2つの日時の値を比較します(前の例のように日付の値だけではありません)。
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
結果:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
例4–分数秒
必要に応じて、マイクロ秒(6桁)まで下げることができます。
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
結果:
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
例5–否定的な結果
予想どおり、最初の日付/時刻引数が2番目の引数より大きい場合、結果は負の整数になります。
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
結果:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+