簡體   English   中英

如何在WHERE子句中添加日期范圍?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM