2012-06-06 31 views
104

Tôi đang lưu trữ thời gian đăng nhập cuối cùng trong MySQL,, datetime-loại được lưu. Khi người dùng đăng nhập, tôi muốn nhận được sự khác biệt giữa thời gian đăng nhập cuối cùng và thời gian hiện tại (mà tôi nhận được bằng cách sử dụng NOW()).Tính toán sự khác biệt giữa hai thời gian trong MySQL

Tôi có thể tính toán bằng cách nào?

+0

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

Trả lời

207

USE TIMESTAMPDIFF Chức năng của MySQL. Ví dụ, bạn có thể sử dụng:

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

Trong trường hợp của bạn, tham số thứ ba của TIMSTAMPDIFF chức năng sẽ là lần đăng nhập hiện tại (NOW()). Tham số thứ hai sẽ là lần đăng nhập cuối cùng, đã có trong cơ sở dữ liệu.

+0

Đó là cập nhật quyền đăng nhập cuối cùng ?? những gì tôi muốn là như trong stackoverflow câu hỏi của bạn được đăng cách đây 2s, 30s trước, 2 phút trước .. vv Tôi muốn có loại chức năng tương tự. Ví dụ có một bảng nói REQUESTS (id, message, timestamp). dấu thời gian trong khi lưu trữ sẽ là NOW(). trong khi tôi chạy một truy vấn, hãy chọn * từ các yêu cầu, thay vì hiển thị giá trị đó, nó sẽ hiển thị id, tin nhắn và yêu cầu được trả lại bao nhiêu thời gian. –

+0

Khi đang thực hiện truy vấn SELECT TIMESTAMPDIFF (SECOND, NOW(), 'chọn lastLoginTime từ các yêu cầu trong đó id =' 2 '') .. NULL đang trả về của nó. Bất kỳ ý tưởng tại sao ?? –

+0

đầu ra của lastLoginTime được chọn từ các yêu cầu trong đó id = '2' là gì? – FSP

Các vấn đề liên quan