Anda dapat menggunakan TIMEDIFF()
dan TIME_TO_SEC()
fungsinya sebagai berikut:
SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
Anda juga dapat menggunakan UNIX_TIMESTAMP()
berfungsi sebagai @Amber disarankan
dalam jawaban lain:
SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') -
UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
Jika Anda menggunakan TIMESTAMP
tipe data, saya kira UNIX_TIMESTAMP()
solusi akan sedikit lebih cepat, karena TIMESTAMP
nilai sudah disimpan sebagai bilangan bulat yang mewakili jumlah detik sejak zaman (Sumber
). Mengutip dokumen :
Ketika
UNIX_TIMESTAMP()
digunakan padaTIMESTAMP
kolom, fungsi mengembalikan nilai stempel waktu internal secara langsung, tanpa konversi implisit “string-ke-Unix-timestamp”.Ingatlah bahwa
TIMEDIFF()
mengembalikan tipe dataTIME
.TIME
nilai dapat berkisar dari '-838:59:59' hingga '838:59:59' (kira-kira 34,96 hari)