Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да форматирам времето от dd:hh:mm:ss до само hh:mm:ss в SQL сървър?

Можете да направите това с математика

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)

Написано като функция:

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

Примерно обаждане:

SELECT dbo.udfTimeSpanFromSeconds(360000)

РЕЗУЛТАТ:

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. Условен поток на SQL Server

  2. ALTER TABLE DROP COLUMN не успя, защото един или повече обекти имат достъп до тази колона

  3. Как да коригирам състоянието на чакащо възстановяване в базата данни на SQL Server?

  4. GRANT EXECUTE на всички съхранени процедури

  5. 4 ключови дейности за наблюдение на бази данни, които всеки DBA трябва да знае