web-dev-qa-db-ja.com

SQLクエリWhere Date = Today Minus 7 Days

ExternalHitsと呼ばれるWebサイトへのヒットのSQLテーブルがあります。 URLをURLxとして追跡し、ページにアクセスした日付をDatexとして追跡します。このクエリを毎週実行して、前の週からの合計ヒット数を取得します。毎週、「中間」の日付を手動で変更する必要があります。 "between"日付がTODAY AND TODAY-7のようになるようにクエリを変更する方法はありますか?毎週手動で日付を変更する必要はありません。

    SELECT URLX, COUNT(URLx) AS Count
    FROM ExternalHits
    WHERE datex BETWEEN '02/27/2017' AND '03/05/2017'    
    GROUP BY URLx
    ORDER BY Count DESC; 
9
Ashley K
declare @lastweek datetime
declare @now datetime
set @now = getdate()
set @lastweek = dateadd(day,-7,@now)

SELECT URLX, COUNT(URLx) AS Count
FROM ExternalHits
WHERE datex BETWEEN @lastweek AND @now
GROUP BY URLx
ORDER BY Count DESC; 
16
Aziz Javed

Dateaddを使用して、現在の日付から週を削除します。

datex BETWEEN DATEADD(WEEK,-1,GETDATE()) AND GETDATE()
5

組み込み関数を使用します。

SELECT URLX, COUNT(URLx) AS Count
FROM ExternalHits
WHERE datex BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW()
GROUP BY URLx
ORDER BY Count DESC; 
1
Ben

CURDATE() および DATE_SUB() 関数を使用して、これを実現できます。

SELECT URLX, COUNT(URLx) AS Count
FROM ExternalHits
WHERE datex BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()    
GROUP BY URLx
ORDER BY Count DESC; 
0
Hunter McMillen

これにより、現在の日付から7を引くことができます。

WHERE datex BETWEEN DATEADD(day, -7, GETDATE()) AND GETDATE()
0
kristech

以下を使用してください。

WHERE datex BETWEEN GETDATE() AND DATEADD(DAY, -7, GETDATE())

お役に立てれば。

0
BRogers
DECLARE @Daysforward int
SELECT @Daysforward = 25 (no of days required)
Select * from table name

where CAST( columnDate AS date) < DATEADD(day,1+@Daysforward,CAST(GETDATE() AS date))
0
user10996728