sql >> Database teknologi >  >> RDS >> Sqlserver

SQL-server, konvertering af sekunder til minutter, timer, dage

Afhængigt af det output du ønsker:

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

Resultat:

1 Day(s), 14:51:45

Eller:

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

Resultat:

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

Du kan erstatte 60/60/24 med 86400 osv. men jeg synes, det er bedre selvdokumenterende, hvis du forlader i /sekunder/minutter/timer-beregningerne. Og hvis du går imod en tabel, skal du blot bruge column_name i stedet for @s .



  1. opret forbindelse til mysql med c#.net

  2. Hvordan opdager man, om en streng indeholder mindst et tal?

  3. Sådan opretter du markøren inde i procedureteksten i plsql

  4. Indsæt kun, hvis værdier afviger fra den forrige post med multi-indsættelse?