我想顯示時間,如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