[英]How to add a Date Range in the WHERE clause?
我有一個要每周運行的SQL Server查詢,它將顯示最近7天的數據。
我嘗試使用:
SELECT something FROM tbl_name
WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= date_col;
但是,上面的代碼是針對MYSQL的,但是我已經安裝了SQL Server,我想知道是否有人對此問題有解決方案。
嘗試這個:
SELECT something
FROM tbl_name
WHERE date_col >= dateadd(day, -7, getdate());
如果要確保刪除了時間部分(如CURDATE()
所建議):
SELECT something
FROM tbl_name
WHERE date_col >= cast(dateadd(day, -7, getdate()) as date);
編輯:
您評論中的問題的答案是:
SELECT something
FROM tbl_name
WHERE date_col >= cast(dateadd(day, -7, getdate()) as date) and
date_col < cast(dateadd(day, 1, getdate()) as date);
注意第二個條件是<
,不是<=
。 如果date_col
沒有時間成分,則:
WHERE date_col >= cast(dateadd(day, -7, getdate()) as date) and
date_col <= cast(getdate() as date)
也可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.