Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server - hitung waktu yang telah berlalu antara dua cap tanggal dalam format HH:MM:SS

DIPERBARUI:

Hitung dengan benar rentang waktu di SQL Server, bahkan jika lebih dari 24 jam :

-- Setup test data
declare @minDate datetime = '2012-12-12 20:16:47.160'
declare @maxDate datetime = '2012-12-13 15:10:12.050'

-- Get timespan in hh:mi:ss
select cast(
        (cast(cast(@maxDate as float) - cast(@minDate as float) as int) * 24) /* hours over 24 */
        + datepart(hh, @maxDate - @minDate) /* hours */
        as varchar(10))
    + ':' + right('0' + cast(datepart(mi, @maxDate - @minDate) as varchar(2)), 2) /* minutes */
    + ':' + right('0' + cast(datepart(ss, @maxDate - @minDate) as varchar(2)), 2) /* seconds */

-- Returns 18:53:24

Kasus tepi yang menunjukkan ketidakakuratan sangat diterima!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan output untuk mengatur variabel dalam pernyataan gabungan

  2. Kesalahan :Jenis kolom DOB bertentangan dengan jenis kolom lain yang ditentukan dalam daftar UNPIVOT

  3. Cara mendapatkan hari pertama dan terakhir bulan sebelumnya (dengan stempel waktu) di SQL Server

  4. Permintaan yang sama - rencana eksekusi yang berbeda

  5. Apakah Nilai Null Indeks SQL Server dalam indeks Non-Unik Non-Clustered?