2010-10-06 84 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(或任何你使用的)中进行格式化。