Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak sformatować czas z dd:gg:mm:ss do tylko gg:mm:ss w serwerze SQL?

Możesz to zrobić za pomocą matematyki

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)

Napisane jako funkcja:

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

Przykładowa rozmowa:

SELECT dbo.udfTimeSpanFromSeconds(360000)

WYNIK:

100:00:00


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uniknąć szkodliwego wpływu monitora aktywności na wydajność serwera SQL?

  2. Jak uruchomić program z SQL?

  3. Klaster pracy awaryjnej SQL Server — określanie aktywnego węzła

  4. Jak porównać wartości Null z kolumny bazy danych

  5. Jak sformatować czas z dd:gg:mm:ss do tylko gg:mm:ss w serwerze SQL?