Saya menyimpan waktu login terakhir di MySQL, datetime-type diajukan. Ketika pengguna masuk, saya ingin mendapatkan perbedaan antara waktu login terakhir dan waktu saat ini (yang saya gunakan NOW()).
Dalam kasus Anda, parameter TIMSTAMPDIFFfungsi ketiga adalah waktu login saat ini ( NOW()). Parameter kedua adalah waktu login terakhir, yang sudah ada dalam database.
Yaitu untuk memperbarui login terakhir kan ?? apa yang saya inginkan adalah seperti di stackoverflow pertanyaan Anda diposting 2s lalu, 30s lalu, 2 menit yang lalu .. dll. Saya ingin fungsionalitas yang serupa. Misalnya ada satu tabel mengatakan REQUESTS (id, message, timestamp). cap waktu saat menyimpan akan SEKARANG (). saat saya menjalankan kueri, pilih * dari permintaan, alih-alih menampilkan nilai yang seharusnya ditampilkan id, pesan, dan berapa lama permintaan balik dikirim.
Devesh Agrawal
1
Saat saya menjalankan kueri SELECT TIMESTAMPDIFF (KEDUA, SEKARANG (), 'pilih lastLoginTime dari permintaan di mana id =' 2 '') .. Kembali NULL. Tahu kenapa ??
Devesh Agrawal
apa output dari lastLoginTime pilih dari permintaan di mana id = '2'?
FSP
SELECT TIMESTAMPDIFF (SECOND, NOW (), '2012-06-06 08:07:36'); Coba ini!
FSP
YES yang berfungsi, Tetapi saya perlu mengambil parameter kedua dari tabel. Bagaimana mencapainya. Infact saya ingin menghindari permintaan bersarang. Ada ide?
Devesh Agrawal
3
dua sen saya tentang logika:
sintaks adalah "tanggal lama" -: "tanggal baru", jadi:
Jawaban:
GUNAKAN
TIMESTAMPDIFF
fungsi MySQL. Misalnya, Anda dapat menggunakan:Dalam kasus Anda, parameter
TIMSTAMPDIFF
fungsi ketiga adalah waktu login saat ini (NOW()
). Parameter kedua adalah waktu login terakhir, yang sudah ada dalam database.sumber
dua sen saya tentang logika:
sintaks adalah "tanggal lama" -: "tanggal baru", jadi:
memberi 30,
memberi: -40
sumber
Jika data awal dan akhir Anda pada hari yang berbeda, gunakan TIMEDIFF.
jika datetime1> datetime2 maka
memberi: 24:01:00
dan datetime1 <datetime2
memberi: -24: 01: 00
sumber