2012-06-06 9 views
104

Przechowuję ostatni czas logowania w MySQL w, datetime-type filed. Kiedy użytkownicy się logują, chcę uzyskać różnicę między ostatnim czasem logowania a bieżącym czasem (który otrzymuję za pomocą NOW()).Oblicz różnicę między dwoma datetimes w MySQL

Jak mogę to obliczyć?

+0

http://stackoverflow.com/questions/2546053/mysql-difference-between-two-timestamps-in-days/28451483#28451483 – Kamlesh

Odpowiedz

207

USE TIMESTAMPDIFF Funkcja MySQL. Na przykład, można użyć:

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

W twoim przypadku, trzeci parametr TIMSTAMPDIFF funkcji byłby aktualny czas logowania (NOW()). Drugi parametr to ostatni czas logowania, który znajduje się już w bazie danych.

+0

To jest aktualizacja ostatniego prawa logowania? co chcę jest jak w stackoverflow Twoje pytanie wysłana 2s temu, 30 s temu, 2 min temu .. itp. Chcę podobny rodzaj funkcjonalności. Na przykład jedna tabela mówi ŻĄDANIA (identyfikator, wiadomość, znacznik czasu). znacznik czasu podczas przechowywania będzie TERAZ(). gdy uruchamiam zapytanie, wybierz * z żądań, zamiast wyświetlać tę wartość, powinien wyświetlać identyfikator, wiadomość i informację, ile czasu zostało wysłane. –

+0

Podczas wykonywania kwerendy WYBIERZ TIMESTAMPDIFF (SECOND, NOW(), 'wybierz lastLoginTime z żądań gdzie id =' 2 ''). Zwracana wartość NULL. Jakiś pomysł, dlaczego? –

+0

jaki jest wynik działania select lastLoginTime z żądań, których id = "2"? – FSP

Powiązane problemy