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

Serwer SQL, konwersja sekund na minuty, godziny, dni

W zależności od żądanego wyniku:

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

Wynik:

1 Day(s), 14:51:45

Lub:

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

Wynik:

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

Możesz zastąpić 60/60/24 z 86400 itp., ale uważam, że lepiej samodokumentować, jeśli wyjdziesz w obliczeniach /sekundy/minuty/godziny. A jeśli grasz przeciwko tabeli, po prostu użyj column_name zamiast @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. Jak wyświetlić klucz podstawowy tabeli SQL Server?

  2. Wydajność zewnętrznej aplikacji z funkcją

  3. Jak przechowywać lokalizację obrazu w bazie danych SQL Server?

  4. Czy w DB mogą istnieć ograniczenia o tej samej nazwie?

  5. Nie można zaimportować danych z programu Excel 2003 do bazy danych za pomocą funkcji openrowset