Sunting: Versi MySQL apa yang Anda gunakan? Ini bekerja dengan baik pada 5.0.22 setidaknya. Saya baru saja menjalankan kueri ini. lihat di sini
mysql> SELECT TIME_TO_SEC(TIMEDIFF('2000:01:01 00:00:00', '2001:01:01 00:00:00'));
+---------------------------------------------------------------------+
| TIME_TO_SEC(TIMEDIFF('2000:01:01 00:00:00', '2001:01:01 00:00:00')) |
+---------------------------------------------------------------------+
| -31622400 |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
Apakah Anda lihat di sini ? Ini mungkin masalah pemotongan karena Rentang waktu jauh lebih kecil daripada perbedaan tanggal yang Anda miliki.
Jawaban Asli
Gunakan ini
SELECT TIMESTAMPDIFF(SECOND,'2000:01:01 00:00:00', '2001:01:01 00:00:00');
+--------------------------------------------------------------------+
| TIMESTAMPDIFF(SECOND,'2000:01:01 00:00:00', '2001:01:01 00:00:00') |
+--------------------------------------------------------------------+
| 31622400 |
+--------------------------------------------------------------------+
Masalahnya adalah Anda mencoba mengubah waktu negatif menjadi waktu dalam detik. Mengganti variabel akan berhasil.
SELECT TIME_TO_SEC(TIMEDIFF('2001:01:01 00:00:00','2000:01:01 00:00:00'));
+--------------------------------------------------------------------+
| TIME_TO_SEC(TIMEDIFF('2001:01:01 00:00:00','2000:01:01 00:00:00')) |
+--------------------------------------------------------------------+
| 31622400 |
+--------------------------------------------------------------------+