MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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秒が上記の出力になります。


  1. 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

  2. MySQLで2つの日時値の違いを見つけますか?

    2つの日時値の違いを見つけるには、TIMESTAMPDIFF()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> DueDatetime1 datetime,    -> DueDatetime2 datetime    -> ); Query OK, 0 rows affected (0.86 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> ins