sql >> Database >  >> RDS >> Sqlserver

SQL-server, seconden converteren naar minuten, uren, dagen

Afhankelijk van de gewenste output:

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

Resultaat:

1 Day(s), 14:51:45

Of:

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

Resultaat:

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

U kunt 60/60/24 . vervangen met 86400 enz. maar ik vind het beter zelfdocumenterend als je de /seconden/minuten/uren-berekeningen laat. En als je tegen een tabel ingaat, gebruik dan gewoon column_name in plaats van @s .



  1. Hoe kun je in SQL groeperen in bereiken?

  2. hoe het hiërarchische menu van mysql . te krijgen

  3. Lokale en globale tijdelijke tabellen in SQL Server

  4. Mysql laatste record voor aparte kolom