簡體   English   中英

返回StartDate和EndDate的任何部分屬於過濾日期范圍內的數據

[英]Return data where any part of StartDate and EndDate fall within filter date range

我有一堆帶有StartDate和EndDate的產品記錄。 我還有一個以params傳入的StartDate和EndDate過濾器設置。

目標:
返回產品日期范圍的任何部分落在或等於過濾器設置日期范圍之間的任何產品。

這是我的嘗試,但它不起作用:

((@FilterStartDate <= prod.StartDate AND @FilterStartDate <= prod.EndDate)
OR
(@FilterEndDate >= prod.StartDate AND @FilterEndDate <= prod.EndDate))

也許這就是你希望這個簡化版本只是檢查開始或結束是否屬於范圍......

where
    (prod.StartDate >= @FilterStartDate and prod.StartDate <= @FilterEndDate)
    or 
    (prod.EndDate  >= @FilterStartDate and prod.EndDate <= @FilterEndDate) 

您要檢查過濾器開始日期是否在產品結束日期之前,過濾器結束日期是否在項目開始日期之后,例如:

@FilterStartDate <= prod.EndDate 
AND @FilterEndDate >= prod.StartDate

假設您的日期列實際上是日期時間,您可以嘗試

WHERE prod.StartDate> ='yourStartDate'和prod.EndDate <'yourEndDate'

或者,如果它不是日期時間而您更喜歡投射:

在'yourStartDate'和'yourEndDate'之間的過去(日期為日期)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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