sql >> Databasteknik >  >> RDS >> Sqlserver

Jag vill ha timmar, min, andra skillnad från två datum och tid

Du kan göra det på ett mycket enkelt sätt:

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)

... resultatet är 00:10:38 (638s =600s + 38s =10 minuter och 38 sekunder)

Ett annat exempel:

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

Det kommer att fungera till skillnaden på 86399 sekunder (23:59:59):

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

... efter det kommer den att återgå till noll:

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


  1. Hur väljer jag bara den senaste posten i en tabell?

  2. Hur ändrar man en databas till postgresql med Symfony 2.0?

  3. Byta ut tabellpartitioner i SQL Server:En genomgång

  4. PDO FETCH_CLASS med sammanfogade tabeller