2010-10-06 81 views
0

試圖返回存儲在數據庫中的日期形式SQL日期時間則DateDiff

天:小時:分鐘

但下面的SQL代碼似乎並沒有很好地工作。

select 
CONVERT(VARCHAR(40),DATEDIFF(minute, MAX(sends), GETDATE())/(24*60)) + '<b>days:</b> ' + CONVERT(VARCHAR(40), DATEDIFF(minute, MAX(sends), GETDATE())%(24*60)/60) 
+ ' <b>hours:</b> ' + CONVERT(VARCHAR(40), DATEDIFF(minute, MAX(sends), GETDATE())%60) + '<b>min.</b>' as sends FROM Table_Name 

我想要做的是獲取消息的年齡,即消息在特定數據庫表中的時間。我希望能夠在SQL中完成,而不是在我的應用程序中。

+0

DATEPART會幫助你嗎? – SteveCav 2010-10-06 01:44:36

+0

@Kobojunkie,你說SQL代碼「看起來不太好」 - 它以什麼方式無法提供你所需要的? – 2010-10-06 13:10:07

+0

它不會返回正確的信息 – Kobojunkie 2010-10-06 21:03:13

回答

2

我會返回總秒數(您關心的最小粒度)並讓應用程序代碼對其進行格式化。這將長期更好地擴展,通常也更容易編寫。

1

也許不是親手做計算,你讀了the datediff function,並讓它爲你做了工作。或者更好的是,只需要幾分鐘,然後在php(或任何你使用的)中進行格式化。