title: SQL server, Converting Seconds to Minutes, Hours, Days
body: <p>I have a database column containing an integer value that represents a systems up time in seconds. I'd really like a query to be able to show me that up time in a easy to read format day(s) hour(s) minute(s) but I'm not quite sure how to do it. A lot of examples I've found appear to use parameters as an example but never much of how to use it in a select function. </p>
  
  <p>I need the time to be the same as what's displayed on a website too. I tried one query earlier and its added days and removed minutes. Can anyone help me out?</p>
  
  <p>Source data:</p>
  
  <pre><code>PDT0014 6141
  PDT0008 4990
  PDT0024 840227
  PDT0033 2301
  PDT0035 5439
  PDT0005 3434
  PDT0019 5482
  </code></pre>
  
  <p>Sample code:</p>
  
  <pre><code>SELECT tblAssets.AssetName, 
  (case when tblAssets.Uptime&gt; (24*60*60) 
          then 
              cast(datepart(day,datediff(dd, 0, dateadd(second, tblAssets.Uptime, 0))) as varchar(4))
          +   ' Day(s) ' + convert(varchar(2), dateadd(second, tblAssets.Uptime, 0), 108) +' Hour(s)' 
      else
              convert(varchar(5), dateadd(second, tblAssets.Uptime, 0), 108) + ' Hour(s) Minute(s) ' 
      end) AS Uptime
  FROM tblAssets
  </code></pre>
  
  <p>Desired Query Output:</p>
  
  <pre><code>PDT0014 01:42 Hour(s) Minute(s) 
  PDT0008 01:23 Hour(s) Minute(s) 
  PDT0024 10 Day(s) 17 Hour(s)
  PDT0033 00:38 Hour(s) Minute(s) 
  PDT0035 01:30 Hour(s) Minute(s) 
  PDT0005 00:57 Hour(s) Minute(s) 
  PDT0019 01:31 Hour(s) Minute(s)
  </code></pre>