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

Comment formater l'heure de jj:hh:mm:ss à seulement hh:mm:ss dans le serveur SQL ?

Vous pouvez le faire avec les maths

DECLARE @sec INT = 93600

SELECT
    CONVERT(VARCHAR(10), (@sec / 3600)) + ':' +
    RIGHT('0' + CONVERT(VARCHAR(2), ((@sec % 3600) / 60)), 2) + ':' +
    RIGHT('0' + CONVERT(VARCHAR(2), (@sec % 60)), 2)

Écrit comme une fonction :

CREATE FUNCTION udfTimeSpanFromSeconds(
    @sec INT
)
RETURNS VARCHAR(15)
AS
BEGIN
RETURN 
    CONVERT(VARCHAR(10), (@sec / 3600)) + ':' +
    RIGHT('0' + CONVERT(VARCHAR(2), ((@sec % 3600) / 60)), 2) + ':' +
    RIGHT('0' + CONVERT(VARCHAR(2), (@sec % 60)), 2)
END

Exemple d'appel :

SELECT dbo.udfTimeSpanFromSeconds(360000)

RÉSULTAT :

100:00:00