105 votes

Comment convertir les secondes en HH:MM:SS en utilisant T-SQL

La situation est que vous avez une valeur en secondes (XXX.XX), et vous voulez la convertir en HH:MM:SS en utilisant T-SQL.

Exemple :

  • 121.25 s devient 00:02:01.25

5voto

Richard Reddy Points 845

En utilisant SQL Server 05, je peux faire fonctionner cela en utilisant :

déclarer @OrigValue int;
set @OrigValue = 121.25;
sélectionner remplacer(str(@OrigValue/3600, len(ltrim(@OrigValue/3600)) + abs(sign(@OrigValue/359999)-1)) + ':' + str((@OrigValue/60)%60,2) + ':' + str(@OrigValue%60,2), ' ', '0')

3voto

G.P. Points 31

Juste au cas où cela pourrait intéresser quelqu'un. La fonction 'Format' peut également être utilisée, avec SQL Server 2012+

Declare @Seconds INT = 1000000;
SELECT FORMAT(CAST(@Seconds/86400.000 AS datetime), 'HH:mm:ss');

OU

Declare @Seconds INT = 1000000;
SELECT CAST(FORMAT(CAST(@Seconds/86400.000 AS datetime), 'HH:mm:ss') AS TIME);

2voto

albin.varghese Points 31
DÉCLARER @TimeinSecond INT
SET @TimeinSecond = 340 -- Changer les secondes
SÉLECTIONNER DROITE('0' + CAST(@TimeinSecond / 3600 AS VARCHAR),2) + ':' +
DROITE('0' + CAST((@TimeinSecond / 60) % 60 AS VARCHAR),2)  + ':' +
DROITE('0' + CAST(@TimeinSecond % 60 AS VARCHAR),2)

1voto

yacob Points 1
SÉLECTIONNER la sous-chaîne (convertir (varchar(23),Dateadd(s,10000,GAUCHE(getdate(),11)),121),12,8)

10000 est votre valeur en sec

1voto

AbelianCommuter Points 31

Ceci est ce que j'utilise (généralement pour les rapports par e-mail de tableaux HTML)

declare @time int, @hms varchar(20)
set @time = 12345
set @hms = cast(cast((@Time)/3600 as int) as varchar(3)) 
  +':'+ right('0'+ cast(cast(((@Time)%3600)/60 as int) as varchar(2)),2) 
  +':'+ right('0'+ cast(((@Time)%3600)%60 as varchar(2)),2) +' (hh:mm:ss)'
select @hms

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X