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

SQL сървър, конвертиране на секунди в минути, часове, дни

В зависимост от резултата, който искате:

DECLARE @s INT = 139905;

SELECT                CONVERT(VARCHAR(12), @s /60/60/24) + ' Day(s), ' 
  +                   CONVERT(VARCHAR(12), @s /60/60 % 24) 
  + ':' + RIGHT('0' + CONVERT(VARCHAR(2),  @s /60 % 60), 2) 
  + ':' + RIGHT('0' + CONVERT(VARCHAR(2),  @s % 60), 2);

Резултат:

1 Day(s), 14:51:45

Или:

DECLARE @s INT = 139905;

SELECT 
    CONVERT(VARCHAR(12), @s /60/60/24)   + ' Day(s), ' 
  + CONVERT(VARCHAR(12), @s /60/60 % 24) + ' Hour(s), '
  + CONVERT(VARCHAR(2),  @s /60 % 60)    + ' Minute(s), ' 
  + CONVERT(VARCHAR(2),  @s % 60)        + ' Second(s).';

Резултат:

1 Day(s), 14 Hour(s), 51 Minute(s), 45 Second(s).

Можете да замените 60/60/24 с 86400 и т.н., но намирам за по-добре самодокументиране, ако оставите в изчисленията /секунди/минути/часове. И ако се сблъсквате с таблица, просто използвайте column_name на мястото на @s .



  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:Изберете динамично име на колона въз основа на променлива

  2. Трябва ли MAMP да върне ::1 като IP на localhost?

  3. Намерете последните промени в обекта в базата данни на SQL Server

  4. Как мога да стартирам само оператора, върху който е курсорът ми, в SQL Server Management Studio?

  5. SQL Server SELECT в съществуваща таблица