MySQLの2つの日時間の差を計算する


回答:


296

TIMESTAMPDIFFMySQL関数を使用します。たとえば、次のように使用できます。

SELECT TIMESTAMPDIFF(SECOND, '2012-06-06 13:13:55', '2012-06-06 15:20:18')

あなたの場合、TIMSTAMPDIFF関数の3番目のパラメーターは現在のログイン時間(NOW())です。2番目のパラメーターは、データベースに既に存在する最終ログイン時刻です。


それは最後のログイン権を更新することですか?私が欲しいのは、stackoverflowであなたの質問が2秒前、30秒前、2分前などに投稿されたものです。同様の機能が必要です。たとえば、REQUESTS(ID、メッセージ、タイムスタンプ)というテーブルが1つあります。保存中のタイムスタンプはNOW()になります。クエリを実行しているときに、リクエストから*を選択します。その値を表示する代わりに、ID、メッセージ、リクエストが投稿された時間を表示する必要があります。
Devesh Agrawal

1
クエリSELECT TIMESTAMPDIFF(SECOND、NOW()、 'select lastLoginTime from requests where id where' 2 '')を実行しているときに、NULLを返します。なぜか?
Devesh Agrawal

id = '2'のリクエストからのselect lastLoginTimeの出力は何ですか?
FSP 2012

SELECT TIMESTAMPDIFF(SECOND、NOW()、 '2012-06-06 08:07:36'); これを試して!
FSP 2012

はい、動作していますが、テーブルから2番目のパラメーターをフェッチする必要があります。それを達成する方法。事実、私はネストされたクエリを避けたいです。何か案が?
Devesh Agrawal

3

ロジックについての私の2セント:

構文は「古い日付」-:「新しい日付」なので、次のようになります。

SELECT TIMESTAMPDIFF(SECOND, '2018-11-15 15:00:00', '2018-11-15 15:00:30')

30を与える、

SELECT TIMESTAMPDIFF(SECOND, '2018-11-15 15:00:55', '2018-11-15 15:00:15')

与える:-40


2

開始日時と終了日時が異なる場合は、TIMEDIFFを使用します。

SELECT TIMEDIFF(datetime1,datetime2)

datetime1> datetime2の場合

SELECT TIMEDIFF("2019-02-20 23:46:00","2019-02-19 23:45:00")

与える:24:01:00

およびdatetime1 <datetime2

SELECT TIMEDIFF("2019-02-19 23:45:00","2019-02-20 23:46:00")

与える:-24:01:00


注、最大839時間離れた日付にしか対応できない
Caius Jard
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.