sql >> Databasteknik >  >> RDS >> Sqlserver

Hur formaterar man tid från dd:hh:mm:ss till endast hh:mm:ss i SQL-server?

Du kan göra detta med matematik

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)

Skrivet som en funktion:

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

Exempelsamtal:

SELECT dbo.udfTimeSpanFromSeconds(360000)

RESULTAT:

100:00:00


  1. Konvertera String ISO-8601-datum till Oracles tidsstämpeldatatyp

  2. Linq till SQL och identity_insert

  3. MySQL TIMESTAMP till QDateTime med millisekunder

  4. Hur man komprimerar och reparerar en databas manuellt i Access 2016