sql >> Databáze >  >> RDS >> Sqlserver

SQL server, převod sekund na minuty, hodiny, dny

V závislosti na požadovaném výstupu:

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);

Výsledek:

1 Day(s), 14:51:45

Nebo:

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).';

Výsledek:

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

Můžete nahradit 60/60/24 s 86400 atd., ale považuji za lepší samodokumentaci, pokud odejdete ve výpočtech /sekundy/minuty/hodiny. A pokud jdete proti tabulce, stačí použít column_name místo @s .



  1. Jak vložit více polí do databáze?

  2. Použití řetězce v uložené proceduře Oracle

  3. Jak vypsat POUZE tabulky, které jsem vytvořil v Oracle SQL?

  4. SQL převést datum a čas a odečíst hodiny