我需要SQL Server中的WHERE條件,我可以從給定日期返回過去7天的活動。SQL Server:在日期的X天內返回記錄
假裝我有日期[dateA]的2列[dateB]
我在尋找類似
SELECT *
FROM TABLE
WHERE [dateB] >= ([dateA] - 7 days)
我需要SQL Server中的WHERE條件,我可以從給定日期返回過去7天的活動。SQL Server:在日期的X天內返回記錄
假裝我有日期[dateA]的2列[dateB]
我在尋找類似
SELECT *
FROM TABLE
WHERE [dateB] >= ([dateA] - 7 days)
WHERE dateB >= DATEADD(DAY, -7, dateA)
select * from table
where dateB >= dateadd(dd,-7, dateA)
SELECT * FROM TABLE WHERE [dateB])> = convert(datetime,[dateA] - 7 )
你是如此接近
我建議不要使用像'datetime - n'這樣的簡寫形式 - 這種方法會導致類似'DATE'和'DATETIME2'這樣的新類型失效。 http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/bad-habits-to-kick-using-shorthand-with-date-time-operations.aspx –
IF you need past 7 days activity then you need take difference of date in that column from today i.e GETDATE() it will be something like this......
WHERE (DATEDIFF(DAY, GETDATE(), dateA) <= 0 AND DATEDIFF(DAY, GETDATE(), dateA) > -7)
AND (DATEDIFF(DAY, GETDATE(), dateB) <= 0 AND DATEDIFF(DAY, GETDATE(), dateB) > -7)
可以獲取過去7天內的值必須從今天起取得與日期的差異,ColumnA和ColumnB可以具有任何值,如果您從不具有今天的日期的列中過去7天不會獲得數據。 –
爲什麼要用'dd'而不只是闡明'DAY'和更清澈?請閱讀:http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/bad-habits-to-kick-using-shorthand-with-date-time-operations.aspx –
@Aaron,你是對。 – singsuyash