我想显示时间,如mr.xxx登录1分钟前或1个月前或2天前或1个月前或1年前。我该如何编写查询来显示这样的内容[例如我们在5天前加入的我们看到的mr.xx中的stackoverflow。他问问题2分钟前] 请帮我查询日期时间
查询日期时间
回答
本示例应适用于任何版本的SQL Server。
它比它确实需要更加详细地说明它是如何工作的。
--create test data
create table #t
(id int
,lastTime datetime
)
insert #t
select 1,dateadd(mi,-1,getdate())
union select 2,dateadd(hh,-1,getdate())
union select 3,dateadd(dd,-1,getdate())
union select 4,dateadd(mm,-1,getdate())
union select 5,dateadd(yy,-1,getdate())
union select 6,dateadd(yy,-5,getdate())
union select 7,NULL
-- carry out formatting to handle pluralisation
SELECT id
,ISNULL(lastAction,'Never')
+ CASE WHEN lastVal > 1
THEN 's ago'
WHEN lastVal = 1
THEN ' ago'
ELSE ''
END
FROM
(
-- Use coalesce to select the first non-null value from the matrix
SELECT id
,COALESCE(CAST(years as VARCHAR(20)) + ' year'
,CAST(months as VARCHAR(20)) + ' month'
,CAST(days as VARCHAR(20)) + ' day'
,CAST(hours as VARCHAR(20)) + ' hour'
,CAST(minutes as VARCHAR(20)) + ' minute'
,CAST(secs as VARCHAR(20)) + ' second'
) as lastAction
,COALESCE(years
,months
,days
,hours
,minutes
,secs
) as lastVal
FROM
(
-- create a matrix of elapsed time
SELECT id
,datediff(ss,lastTime,getdate()) secs
,NULLIF(datediff(mi,lastTime,getdate()),0) minutes
,NULLIF(datediff(hh,lastTime,getdate()),0) hours
,NULLIF(datediff(dd,lastTime,getdate()),0) days
,NULLIF(datediff(mm,lastTime,getdate()),0) months
,NULLIF(datediff(yy,lastTime,getdate()),0) years
from #t
) as X
) AS Y
不错的查询埃德哈珀谢谢你 – 2009-09-14 11:06:03
好的答案埃德+1 – kevchadders 2009-09-14 14:16:51
我希望你会保持一个记录,当用户最后一次登录数据库中的SQL表时,可以用于审计历史记录。
有了这些信息,你可以创建一个存储过程,它可以检索信息时,该用户在上次登录。
例如上次登录时的SQL示例(IN DAYS)
DECLARE @LoggedIn AS DATETIME
SET @LoggedIn = '01 Apr 2009'
SELECT DATEDIFF(dd, @LoggedIn, GETDATE()) AS 'Last Logged In (DAYS)'
好的谢谢你kevchadders – 2009-09-14 10:55:24
- 1. Django日期时间查询
- 2. c#查询日期时间
- 3. SQL日期时间查询
- 4. 查询日期VS查询的时间
- 5. 悖论:查询日期列+时间列作为日期时间
- 6. MongoDB:按日期时间查询部分日期时间
- 7. Flask-sqlalchemy查询日期时间间隔
- 8. MySQL查询检查日期时间列
- 9. SQL查询 - 查找日期和时间
- 10. 与日期之间的日期时间和查询的查询问题
- 11. 查询日期之间总水泵时间的查询
- 12. 从查询中选择日期时间
- 13. 日期时间的SQL查询
- 14. 日期时间基于查询2008
- 15. PHP日期时间查询如何?
- 16. Oracle日期字段的查询时间
- 17. 日期时间解析查询
- 18. LINQ查询NULLABLE日期时间字段
- 19. DB查询的日期时间转换
- 20. 日期时间相关的查询
- 21. 猫鼬查询日期时间
- 22. 查询日期时间与PyMongo
- 23. MySQL-截断日期,时间查询
- 24. SQL查询的日期时间
- 25. 查询SQL日期和时间(CLOSED)
- 26. 一年以前查询日期时间
- 27. Django:查询的天真日期时间
- 28. C#查询日期和时间
- 29. LINQ查询和日期时间
- 30. Ruby on Rails查询日期时间
您几乎可以肯定地在您的前端代码(C#,VB,无论什么)而不是SQL查询中执行此操作。 – LukeH 2009-09-14 10:28:33
@surya:那么你应该做礼貌和适当的事情,并接受最好的答案/真正解决你的问题。要接受答案,请用向上和向下箭头点击“0”下面答案左边的复选标记。如果有人帮助你 - 请尽量接受答案。 – 2009-09-14 21:28:42