Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:cara mendapatkan perbedaan antara dua cap waktu dalam hitungan detik

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 pada TIMESTAMP kolom, fungsi mengembalikan nilai stempel waktu internal secara langsung, tanpa konversi implisit “string-ke-Unix-timestamp”.

Ingatlah bahwa TIMEDIFF() mengembalikan tipe data TIME . TIME nilai dapat berkisar dari '-838:59:59' hingga '838:59:59' (kira-kira 34,96 hari)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Baris sisipkan PHP/MySQL lalu dapatkan 'id'

  2. Mengambil catatan terakhir di setiap grup - MySQL

  3. Laravel-5 'LIKE' setara (Fasih)

  4. Banyak Hitungan dengan Kondisi Berbeda dalam satu permintaan MySQL

  5. Paginasi MySQL tanpa kueri ganda?