Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Je veux des heures, des minutes, une deuxième différence entre deux dates et heures

Vous pouvez le faire de manière très simple :

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)

... le résultat est 00:10:38 (638s =600s + 38s =10 minutes et 38 secondes)

Autre exemple :

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

Cela fonctionnera jusqu'à la différence de 86399 secondes (23:59:59):

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

... après cela, il reviendra à zéro :

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