[英]SQL - Find users who never logged in for two weeks or more
Date UserID
1/1/2013 Jo1234
2/1/2013 Bob1234
2/2/2013 Bob1234
2/3/2013 Cal5678
1/4/2013 Bob1234
2/1/2013 Bob1234
2/2/2013 Bob1234
2/3/2013 Cal5678
嗨,我想找到兩周或更長時間沒有登錄的用戶
SELECT DISTINCT [UserID] FROM UsersTable
我無法使用WEEK()
因為我使用的是舊版本的 sql 感謝您的幫助
SELECT DISTINCT [UserID] FROM UsersTable WHERE DATEDIFF(DAY, myDateCol, getDate()) >= 14
SQL Server 的基本日期函數很容易找到; 如果您需要更精確的信息,請檢查谷歌的日期計算。
由於您要基於兩周(14 天)進行過濾,因此您可以使用以下方法將結果過濾掉:
DATEADD(DAY, -14, GETDATE()
考慮以下數據集:
CREATE TABLE Test(LastDateOfLogin DATE, UserID NVARCHAR(20))
INSERT INTO Test VALUES('11-Nov-2020', 'Jo1234')
INSERT INTO Test VALUES('01-Nov-2020', 'Bob1234')
INSERT INTO Test VALUES('02-Nov-2020', 'Bob1234')
INSERT INTO Test VALUES('03-Nov-2020', 'Cal5678')
INSERT INTO Test VALUES('03-Nov-2020', 'Bob1234')
INSERT INTO Test VALUES('12-Nov-2020', 'Bob1234')
INSERT INTO Test VALUES('15-Nov-2020', 'Bob1234')
INSERT INTO Test VALUES('05-Nov-2020', 'Cal5678')
該表將如下所示:
編寫查詢:
SELECT LastDateOfLogin, UserID
FROM Test
WHERE LastDateOfLogin <= DATEADD(DAY, - 14, GETDATE())
結果將是:
希望這可以幫助!!
要回答您關於 WEEK() 的部分,您是對的。 不存在這樣的事情。 您必須使用 DATEPART()。
SELECT DATEPART(WW, GETDATE());
我認為你正在尋找的是
SELECT DISTINCT [UserID]
FROM UsersTable
GROUP BY [UserID]
HAVING MAX(Date) < CAST(DATEADD(WEEK, -1, GETDATE()) AS DATE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.