sql >> Database >  >> RDS >> Sqlserver

Hoe de tijd te formatteren van dd:uu:mm:ss naar alleen uu:mm:ss in SQL-server?

Je kunt dit doen met wiskunde

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)

Als functie geschreven:

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

Voorbeeldoproep:

SELECT dbo.udfTimeSpanFromSeconds(360000)

RESULTAAT:

100:00:00


  1. SQL-instructie - SELECTEER het omgekeerde van deze query

  2. Gegevenstype van SUM-resultaat in MySQL

  3. Retourneer rijen die maximaal één kolom zijn in Postgresql

  4. JBoss7 + PostgreSQL Nieuwe ontbrekende/niet-voldane afhankelijkheden