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

Chci Hodiny, Min, sekundy rozdíl oproti dvěma datem

Můžete to udělat velmi jednoduchým způsobem:

declare  @date1 datetime, @date2 datetime
set @date1=DATEADD(s,-638,getdate())
set @date2=GETDATE()

select convert(char(8),dateadd(s,datediff(s,@date1,@date2),'1900-1-1'),8)

... výsledek je 00:10:38 (638 s =600 s + 38 s =10 minut a 38 sekund)

Další příklad:

select distinct convert(char(8),dateadd(s,datediff(s, CRDATE , GETDATE() ),'1900-1-1'),8) from sysobjects order by 1

Bude fungovat až do rozdílu 86399 sekund (23:59:59):

select convert(char(8),dateadd(s,datediff(s
    , DATEADD(s,-86399,GETDATE())
    , GETDATE()
),'1900-1-1'),8)

... poté se vrátí na nulu:

select convert(char(8),dateadd(s,datediff(s
    , DATEADD(s,-86400,GETDATE())
    , GETDATE()
),'1900-1-1'),8)


  1. Výmluvné, kde se spojit více tabulek

  2. Oracle Partition by ID a subpartition by DATE s intervalem

  3. Možnost doručení při podání souběžného požadavku v R12.1.3

  4. SQLException:Tato sada výsledků je uzavřena