2つのタイムスタンプのMySQLの違いは秒単位ですか?
MySQLの組み込み関数UNIX_TIMESTAMP()を使用して、タイムスタンプと2つのタイムスタンプの差を取得できます。構文は次のとおりです-
SELECT UNIX_TIMESTAMP(yourColumnName1) - UNIX_TIMESTAMP(yourColumnName2) as anyVariableName from yourTableName;
上記の概念を理解するために、テーブルを作成しましょう。以下は、テーブルを作成するためのクエリです-
mysql> create table DifferenceInSeconds −> ( −> FirstTimestamp TIMESTAMP, −> SecondTimestamp TIMESTAMP −> ); Query OK, 0 rows affected (0.93 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-
mysql> insert into DifferenceInSeconds values('2012-12-12 13:16:55','2012-12-12 13:13:55'); Query OK, 1 row affected (0.31 sec) mysql> insert into DifferenceInSeconds values('2014-10-11 12:15:50','2014-10-11 12:13:50'); Query OK, 1 row affected (0.19 sec) mysql> insert into DifferenceInSeconds values('2018-12-14 13:30:53','2018-12-14 13:27:53'); Query OK, 1 row affected (0.21 sec)
ここで、selectステートメントを使用してテーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from DifferenceInSeconds;
以下は出力です-
+---------------------+---------------------+ | FirstTimestamp | SecondTimestamp | +---------------------+---------------------+ | 2012-12-12 13:16:55 | 2012-12-12 13:13:55 | | 2014-10-11 12:15:50 | 2014-10-11 12:13:50 | | 2018-12-14 13:30:53 | 2018-12-14 13:27:53 | +---------------------+---------------------+ 3 rows in set (0.00 sec)
これは、2つのタイムスタンプの違いを秒単位で見つけるためのクエリです。クエリは次のとおりです-
mysql> SELECT UNIX_TIMESTAMP(FirstTimestamp) - UNIX_TIMESTAMP(SecondTimestamp) as Seconds from DifferenceInSeconds;
以下は出力です-
+---------+ | Seconds | +---------+ | 180 | | 120 | | 180 | +---------+ 3 rows in set (0.00 sec)
注 -どのタイムスタンプが大きいかわからない場合は、ABS()を使用してください。
構文は次のとおりです-
SELECT ABS(UNIX_TIMESTAMP(yourColumnName1) - UNIX_TIMESTAMP(yourColumnName2)) as Seconds from DifferenceInSeconds;
上記の構文を確認するために、最初のタイムスタンプの値が小さいレコードを挿入しましょう。
mysql> insert into DifferenceInSeconds values('2018-12-14 13:26:53','2018-12-14 13:31:53'); Query OK, 1 row affected (0.21 sec)>
テーブルのすべてのレコードを表示するクエリ。
mysql> select *from DifferenceInSeconds;
以下は出力です-
+---------------------+---------------------+ | FirstTimestamp | SecondTimestamp | +---------------------+---------------------+ | 2012-12-12 13:16:55 | 2012-12-12 13:13:55 | | 2014-10-11 12:15:50 | 2014-10-11 12:13:50 | | 2018-12-14 13:30:53 | 2018-12-14 13:27:53 | | 2018-12-14 13:26:53 | 2018-12-14 13:31:53 | +---------------------+---------------------+ 4 rows in set (0.00 sec)
以下はABS()関数の使用法です。クエリは次のとおりです-
mysql> SELECT ABS(UNIX_TIMESTAMP(FirstTimestamp) - UNIX_TIMESTAMP(SecondTimestamp)) as Seconds from DifferenceInSeconds;
以下は出力です-
+---------+ | Seconds | +---------+ | 180 | | 120 | | 180 | | 300 | +---------+ 4 rows in set (0.00 sec)
注 --ABS()を使用しない場合は、-300秒が上記の出力になります。
-
MySQLのintvalue='1'とintvalue=1の違いは?
intvalue=1を使用する必要があります。ステートメントintvalue=’1’は、MySQLによって内部的にcast( ‘1’ as int)に変換されます。 まずテーブルを作成しましょう- mysql> create table DemoTable1566 -> ( -> intvalue int -> ); Query OK, 0 rows affected (0.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert
-
MySQLで2つの日時値の違いを見つけますか?
2つの日時値の違いを見つけるには、TIMESTAMPDIFF()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> DueDatetime1 datetime, -> DueDatetime2 datetime -> ); Query OK, 0 rows affected (0.86 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> ins