sql >> Databáze >  >> RDS >> Sqlserver

SQL Server - výpočet uplynulého času mezi dvěma razítky data a času ve formátu HH:MM:SS

AKTUALIZOVÁNO:

Správně vypočítat časové rozpětí v SQL Server, i když více než 24 hodin :

-- 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

Obzvláště vítány jsou případy okrajů, které vykazují nepřesnost!



  1. Získejte insert_id pro všechny řádky vložené do jednoho dotazu mysqli (více hodnot)

  2. Ukládání datového výstupu Apache Hadoop do databáze Mysql

  3. Změnit sloupec v SQL Server

  4. Upozornění:join() [function.join]:Neplatné argumenty předané v C