wake-up-neo.com

Zeitunterschied zwischen zwei Datumsangaben in Minuten berechnen

Ich habe in meiner MySQL-Datenbank einen Zeitstempel für einen Zeitbereich, der einem DATE-Datentyp in meiner Bean zugeordnet ist. Nun möchte ich eine Abfrage, mit der ich alle Datensätze in der Datenbank abrufen kann, für die der Unterschied zwischen dem aktuellen und dem in der Datenbank gespeicherten Zeitstempel> 20 Minuten ist.

Wie kann ich es tun?

Was ich will ist:

SELECT * FROM MyTab T WHERE T.runTime - now > 20 minutes

Gibt es dafür MySQL-Funktionen oder eine Möglichkeit, dies in SQL zu tun?

56
Akshay

Ich denke, Sie könnten TIMESTAMPDIFF (unit, datetime_expr1, datetime_expr2) so etwas wie .__ verwenden.

select * from MyTab T where
TIMESTAMPDIFF(MINUTE,T.runTime,NOW()) > 20
101
ROUND(time_to_sec((TIMEDIFF(NOW(), "2015-06-10 20:15:00"))) / 60);
20
Mouloud

Probier diese:

select * from MyTab T where date_add(T.runTime, INTERVAL 20 MINUTE) < NOW()

HINWEIS: Dies sollte funktionieren, wenn Sie das MySQL DateTime-Format verwenden. Wenn Sie Unix-Zeitstempel (Ganzzahl) verwenden, wäre es noch einfacher:

select * from MyTab T where UNIX_TIMESTAMP() - T.runTime > 20*60

Die UNIX_TIMESTAMP () - Funktion gibt Ihren aktuellen Unix-Zeitstempel zurück.

6
itsmeee

Ich verwende den folgenden Code für heute und das Datenbankdatum.

(TIMESTAMPDIFF(MINUTE,NOW(),EndDate))%60 as Minutes

Hier können wirSTUNDE(für Stunden -% 24),TAG(für Tage - kein Bedarf an%) anstelle vonMINUTEverwenden, wenn wir dies benötigen.

0
Deepak Dholiyan