我的數據庫中有一個表格。該表被稱爲Order。它有這樣的在SQL Server 2008中查詢帶有日期/時間過濾器的表格
- ID
- 客戶ID
- 訂購日期
- 數量
- 價格
我需要把所有的訂單,爲過去2周的結構。我怎麼做?我不明白如何在SQL中以這種方式處理日期。
謝謝!
我的數據庫中有一個表格。該表被稱爲Order。它有這樣的在SQL Server 2008中查詢帶有日期/時間過濾器的表格
我需要把所有的訂單,爲過去2周的結構。我怎麼做?我不明白如何在SQL中以這種方式處理日期。
謝謝!
您可以納入這樣的事情到您的WHERE
條款:(即訂購日期比今天減去14天更近)
WHERE OrderDate >= DATEADD(day,-14,GetDate())
[我沒有SQL Server訪問這裏所以我不能檢查它 - 但它可能工作:)]
編輯:根據確切的數據類型的OrderDate,我不知道如果你有例如一個訂單在兩週前的一天的一半,所以你可能想檢查會發生什麼。
marnir答案是做到這一點,但這是>今天不包括訂購日期另一種選擇:
select * from Order
where [OrderDate]
BETWEEN DATEADD(dd, -14, GetDate()) AND GetDate()
這裏是檢索放在最後2 weeks
訂單的另一種可能的方式。假定OrderDate
是數據類型爲datetime
的列。屏幕截圖#在類似於您的要求的名爲dbo.[Order]
的表中顯示示例數據,並針對該表數據輸出以下查詢。此查詢在SQL Server 2008 R2中進行了測試,但也與其他SQL Server版本兼容。
SELECT Id
, CustomerId
, OrderDate
, Quantity
, Price
FROM dbo.[Order]
WHERE DATEDIFF(WEEK, OrderDate, GETDATE()) <= 2
希望有幫助。
屏幕截圖