MySQLで指定した2つの日付間の完全な24時間の日数を計算する方法
DATEDIFF()とTIMESTAMPDIFF()の違い
MySQLのDATEDIFF()関数は、値のうち日付部分のみを計算の対象とします。そのため、時刻まで考慮した「完全な24時間」単位の日数を求めたい場合には、TIMESTAMPDIFF()関数を使用する必要があります。
TIMESTAMPDIFF()関数は、第1引数に時間の単位(DAY、HOUR、MINUTEなど)、第2引数に開始日時、第3引数に終了日時を指定します。戻り値として、指定した単位で測定された2つの日時の差が整数で返されます。
TIMESTAMPDIFF()を使った計算例
例えば、「2017-05-27 11:59:00」と「2017-05-23 12:00:00」の間にある完全な24時間の日数を求めたい場合は、以下のようなMySQLクエリを実行します。
mysql> Select TIMESTAMPDIFF(DAY, '2017-05-23 12:00:00' , '2017-05-27 11:59:00'); +---------------------------------------------------------------------------+ | TIMESTAMPDIFF(DAY, '2017-05-23 12:00:00' , '2017-05-27 11:59:00') | +---------------------------------------------------------------------------+ | 3 | +---------------------------------------------------------------------------+ 1 row in set (0.00 sec)
結果の解説
上記の例では、2つの日付の暦上の差は4日ですが、終了時刻が11時59分であるため、4日目の24時間が満たされていません。TIMESTAMPDIFF(DAY, ...)は完全に24時間が経過した日数のみをカウントするため、結果として「3」が返されます。
このように、時刻を含む正確な期間計算を行いたい場合は、DATEDIFF()ではなくTIMESTAMPDIFF()を使うことで、意図した通りの結果を得ることができます。
-
C#で2つの日付間の差分を「分」単位で計算する方法
C#では、DateTime型同士の減算とTimeSpan構造体を使うことで、2つの日付・時刻の差分を簡単に計算できます。この記事では、その差分を「分」単位で取得する手順を解説します。1. 2つの日付を設定するまず、比較対象となる2つの日付をDateTimeオブジェクトとして定義します。DateTime date1 = new DateTime(2018, 7, 15, 08, 15, 20); DateTime date2 = new DateTime(2018, 8, 17, 11, 14, 25);ここでは、年・月・日・時・分・秒をそれぞれ指定して、日付と時刻の両方を含む値を作成しています
-
Pythonで2つの日付の間の日数を計算する方法を解説
Pythonでは、シンプルな日付演算を使うことで、2つの日付の間の日数を簡単に計算できます。日数の差を求めたい2つの日付を定義し、それらを引き算すると timedelta オブジェクトが得られます。このオブジェクトの days プロパティを参照することで、目的の日数を取得できます。基本的な手順datetime モジュールから date クラスをインポートします。差を求めたい2つの日付を date オブジェクトとして定義します。2つの日付を引き算して timedelta オブジェクトを生成します。days プロパティの値を出力します。サンプルコードfrom datetime import dat