MySQLで2つの日時(DATETIME)値の差を求める方法
MySQLで2つの日時値の差を求める方法
MySQLで2つのDATETIME型の値の差を求めるには、TIMESTAMPDIFF()関数を使用します。この関数を使うことで、秒・分・時間などの任意の単位で2つの日時の差を簡単に計算できます。
まず、サンプル用のテーブルを作成しましょう。
mysql> create table DemoTable
-> (
-> DueDatetime1 datetime,
-> DueDatetime2 datetime
-> );
Query OK, 0 rows affected (0.86 sec)
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable values('2019-10-26 19:49:00','2019-10-26 17:49:00');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('2019-10-26 08:00:00','2019-10-26 13:00:00');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2019-10-26 06:50:00','2019-10-26 12:50:00');
Query OK, 1 row affected (0.68 sec)SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
上記のクエリを実行すると、次のような結果が出力されます。
+---------------------+---------------------+
| DueDatetime1 | DueDatetime2 |
+---------------------+---------------------+
| 2019-10-26 19:49:00 | 2019-10-26 17:49:00 |
| 2019-10-26 08:00:00 | 2019-10-26 13:00:00 |
| 2019-10-26 06:50:00 | 2019-10-26 12:50:00 |
+---------------------+---------------------+
3 rows in set (0.00 sec)
以下が、TIMESTAMPDIFF()を使って2つの日時の差を求めるクエリの例です。ABS()関数を組み合わせることで、日時の前後の順序に関係なく、常に正の値として差を取得できます。
mysql> select abs(timestampdiff(minute,DueDatetime1,DueDatetime2)) from DemoTable;
実行結果は以下の通りです。
+------------------------------------------------------+
| abs(timestampdiff(minute,DueDatetime1,DueDatetime2)) |
+------------------------------------------------------+
| 120 |
| 300 |
| 360 |
+------------------------------------------------------+
3 rows in set (0.00 sec)
ポイント解説
TIMESTAMPDIFF()関数の構文は「TIMESTAMPDIFF(単位, 日時1, 日時2)」です。第1引数には差を測定する単位として、MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEARなどを指定できます。上記の例では分単位(MINUTE)で差を求めています。
また、TIMESTAMPDIFF()は「日時2 − 日時1」の結果を返すため、引数の順序が逆になると負の値になります。そのため、ABS()関数で絶対値に変換しておくと、どちらの日時が後であっても正しい差分を安定して取得でき、実務での集計処理などにも安心して使えます。
-
C#で2つのDateTimeオブジェクト間の差をミリ秒単位で求める方法
C#では、TimeSpan構造体を使うことで、2つのDateTimeオブジェクト間の時間差を簡単に計算できます。この記事では、その差をミリ秒単位で取得する方法を解説します。基本的な手順まず、比較対象となる2つのDateTimeオブジェクトを用意します。以下は、同じ日付の時刻が異なる2つのオブジェクトの例です。DateTime date1 = new DateTime(2018, 8, 11, 08, 15, 20); DateTime date2 = new DateTime(2018, 8, 11, 11, 14, 25);次に、2つの日時の差を求めます。DateTime同士は減算演算子(-
-
C#で2つの日付の差を取得する方法(DateTime.Subtractの使い方)
C#では、DateTime.Subtractメソッドを使うことで、2つの日付の差を簡単に取得できます。このメソッドはTimeSpan型の値を返すため、日数や時間、分などの差分を柔軟に扱うことが可能です。1. 2つの日付を設定するまず、比較対象となる2つの日付を設定します。DateTime date1 = new DateTime(2018, 8, 27); DateTime date2 = new DateTime(2018, 8, 28);2. Subtractメソッドで差分を取得する次に、Subtractメソッドを呼び出して日付の差を求めます。date2からdate1を引く形で記述します。