ホームページ >データベース >mysql チュートリアル >mysqlで時差を確認する方法
時差を見つけるための Mysql メソッド: 1. TIMEDIFF() 関数、構文 "TIMEDIFF(dt1, dt2);" を使用します; 2. IMESTAMPDIFF() 関数、構文 "TIMESTAMPDIFF(unit) を使用します。 ,開始,終了); "。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql は時間差を見つけます
timediff() 関数 - 2 つの TIME または DATETIME 値の差を計算します。
timestampdiff() 関数 - 2 つの DATE 値または DATETIME 値の差を計算します。
TIMEDIFF
2 つの TIME
または DATETIME
値の差を返します。 TIMEDIFF
関数の次の構文を参照してください。
TIMEDIFF(dt1, dt2);
TIMEDIFF
この関数は、同じ型である必要がある 2 つのパラメータ、つまり TIME
または DATETIME
を受け入れます。 TIMEDIFF
関数は、時間値として表現された dt1 - dt2
の結果を返します。
TIMEDIFF
関数は TIME
値を返すため、その結果は -838:59:59
から ## の範囲に限定されます。 #838: 59:59 は
TIME の値の範囲内です。
MySQL TIMEDIFF 関数の例
2 つの時間値の差を計算する例を見てみましょう。mysql> SELECT TIMEDIFF('12:00:00','10:00:00') diff; +----------+ | diff | +----------+ | 02:00:00 | +----------+ 1 row in setこの例では、
12:00:00 と
10:00:00 の差を次のように計算しました:
02: 00:00。
DATETIME 値の差を計算します。
mysql> SELECT TIMEDIFF('2010-01-01 01:00:00', '2010-01-02 01:00:00') diff; +-----------+ | diff | +-----------+ | -24:00:00 | +-----------+ 1 row in setどちらかの引数が
NULL の場合、
TIMEDIFF関数は
NULL を返します。
mysql> SELECT TIMEDIFF('2010-01-01',NULL) diff; +------+ | diff | +------+ | NULL | +------+ 1 row in set, 1 warning (0.00 sec)異なるタイプの 2 つのパラメータ (1 つは
DATETIME、もう 1 つは
TIME) を渡すと、
TIMEDIFF 関数は ## も返します。 # ヌル###。
mysql> SELECT TIMEDIFF('2010-01-01 10:00:00','10:00:00') diff; +------+ | diff | +------+ | NULL | +------+ 1 row in set
MySQL TIMESTAMPDIFF 関数の概要
TIMESTAMPDIFF(unit,begin,end);
TIMESTAMPDIFF 関数は begin-end の結果を返します。
begin と
end は
DATE です。 または
DATETIME 式。
TIMESTAMPDIFF
begin は
DATE 値で、
end## は値です。 DATETIME
値を指定できます。 DATE
値が使用されている場合、TIMESTAMPDIFF
関数は、時刻部分 "00:00:00"## を持つ
DATETIME 値として扱います。 #。
unit
パラメーターは、(
end-begin
MICROSECOND
SECOND
次の例は、2018-01-01 と 2018-06-01 の差を月の値として返します。違いは、以下に示すように、
unit パラメータを MONTH
から DAY
に変更するだけです。
mysql> SELECT TIMESTAMPDIFF(MONTH, '2018-01-01', '2018-06-01') result; +--------+ | result | +--------+ | 5 | +--------+ 1 row in set
次のステートメントは 2 つの DATETIME を返します。
分単位の差の値: <pre class="brush:php;toolbar:false">mysql> SELECT TIMESTAMPDIFF(DAY, '2010-01-01', '2010-06-01') result;
+--------+
| result |
+--------+
| 151 |
+--------+
1 row in set</pre>
TIMESTAMPDIFF
は、
パラメーターに関連付けられた時間の部分のみを考慮することに注意してください。以下の例を参照してください: <pre class="brush:php;toolbar:false">mysql> SELECT TIMESTAMPDIFF(MINUTE, '2018-01-01 10:00:00', '2018-01-01 10:45:00') result;
+--------+
| result |
+--------+
| 45 |
+--------+
1 row in set</pre>
その差は 45 分 59 秒であるはずです。ただし、
パラメーターを MINUTE
として渡したため、関数は予想どおり 45 分を返します。
の代わりに SECOND
が使用される場合、TIMESTAMPDIFF
関数は、次に示すように
の部分を考慮します。次の例:<pre class="brush:php;toolbar:false">mysql> SELECT TIMESTAMPDIFF(MINUTE, '2018-01-01 10:00:00', '2018-01-01 10:45:59') result;
+--------+
| result |
+--------+
| 45 |
+--------+
1 row in set</pre>
注: 45 分 59 秒 = 45×60 59 (秒) = 2759 秒
MySQL TIMESTAMPDIFF 関数を使用して、年齢を計算します
persons最初の
では、デモ用に
という名前の新しいテーブルを作成します。 mysql> SELECT TIMESTAMPDIFF(SECOND, '2018-01-01 10:00:00', '2018-01-01 10:45:59') result;
+--------+
| result |
+--------+
| 2759 |
+--------+
1 row in set
、いくつかの行を persons テーブルに挿入します。 <pre class="brush:php;toolbar:false">USE testdb;
CREATE TABLE persons (
id INT AUTO_INCREMENT PRIMARY KEY,
full_name VARCHAR(255) NOT NULL,
date_of_birth DATE NOT NULL
);</pre>
、 を使用します。 TIMESTAMPDIFF を使用して、persons
テーブル内の各人の年齢を計算します。
INSERT INTO persons(full_name, date_of_birth) VALUES('John Doe', '1990-01-01'), ('David Taylor', '1989-06-06'), ('Peter Drucker', '1985-03-02'), ('Lily Minsu', '1992-05-05'), ('Mary William', '1995-12-01');
上記のクエリ ステートメントを実行すると、次の結果が得られます。SELECT
id,
full_name,
date_of_birth,
TIMESTAMPDIFF(YEAR,
date_of_birth,
'2018-01-01') age
FROM
persons;
このステートメントでは、 、2018-01-01
時点の年齢を計算します。現在の年齢を計算したい場合は、以下に示すように、リテラル値 '2018-01-01'
を
関数に置き換えます。上記のクエリ ステートメントを実行して、次の結果を取得します。
+----+---------------+---------------+-----+ | id | full_name | date_of_birth | age | +----+---------------+---------------+-----+ | 1 | John Doe | 1990-01-01 | 28 | | 2 | David Taylor | 1989-06-06 | 28 | | 3 | Peter Drucker | 1985-03-02 | 32 | | 4 | Lily Minsu | 1992-05-05 | 25 | | 5 | Mary William | 1995-12-01 | 22 | +----+---------------+---------------+-----+ 5 rows in set
[関連する推奨事項: mysql ビデオ チュートリアル
]
以上がmysqlで時差を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。