Oblicz różnicę między dwoma datami w MySQL


Odpowiedzi:


296

UŻYJ TIMESTAMPDIFFfunkcji MySQL. Na przykład możesz użyć:

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

W twoim przypadku trzecim parametrem TIMSTAMPDIFFfunkcji byłby aktualny czas logowania ( NOW()). Drugim parametrem byłby czas ostatniego logowania, który jest już w bazie danych.


To znaczy zaktualizować ostatnie logowanie? to, czego chcę, to jak w stackoverflow Twoje pytanie zostało wysłane 2s temu, 30s temu, 2 minuty temu ... itd. Chcę podobnego rodzaju funkcjonalności. Na przykład jest jedna tabela z napisem REQUESTS (identyfikator, komunikat, znacznik czasu). sygnatura czasowa podczas przechowywania będzie TERAZ (). gdy uruchamiam zapytanie, wybieram * z żądań, zamiast wyświetlać tę wartość, powinien wyświetlać identyfikator, komunikat i ile czasu zostało wysłane.
Devesh Agrawal

1
Podczas wykonywania zapytania SELECT TIMESTAMPDIFF (SECOND, NOW (), 'select lastLoginTime z żądań, gdzie id =' 2 '') .. Zwraca NULL. Każdy pomysł, dlaczego?
Devesh Agrawal

jakie jest wyjście select lastLoginTime z żądań, gdzie id = '2'?
FSP

SELECT TIMESTAMPDIFF (SECOND, NOW (), '2012-06-06 08:07:36'); Spróbuj tego!
FSP

TAK, że działa, ale muszę pobrać drugi parametr z tabeli. Jak to osiągnąć. W rzeczywistości chcę uniknąć zagnieżdżonych zapytań. Dowolny pomysł?
Devesh Agrawal

3

moje dwa grosze z logiki:

składnia to „stara data” -: „nowa data”, więc:

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

daje 30,

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

daje: -40


2

Jeśli data rozpoczęcia i zakończenia przypadają w różne dni, użyj funkcji TIMEDIFF.

SELECT TIMEDIFF(datetime1,datetime2)

jeśli datetime1> datetime2 to

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

daje: 24:01:00

i datetime1 <datetime2

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

daje: -24: 01: 00


Uwaga, radzi sobie tylko z datami oddalonymi od siebie o 839 godzin
Caius Jard
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.