簡體   English   中英

SQL查詢按日期范圍查找兩個日期之間的所有數據

[英]SQL query to find all Data by date range which falls between two dates

Task Table
id  name    start_date  expiry_date
1   Task 1  09-05-2016  11-05-2016
2   Task 2  10-05-2016  13-05-2016
3   Task 3  11-05-2016  12-05-2016 
4   Task 4  17-05-2016  20-05-2016
5   Task 5  18-05-2016  26-05-2016

我需要找到給定日期范圍內的所有任務,其中范圍內的每個日期都在 start_date 和 expiry_date 之間。 假設輸入是 10-05-2016 到 12-05-2016。

id  name    start_date  expiry_date
1   Task 1  09-05-2016  11-05-2016
2   Task 2  10-05-2016  13-05-2016
3   Task 3  11-05-2016  12-05-2016 

您可以使用此條件來檢查兩個日期范圍是否重疊

WHERE 
    StartA <= EndB 
    AND EndA >= StartB

您的查詢應該是:

SELECT *
FROM tbl
WHERE
    start_date <= '12-05-2016'
    AND expiry_date >= '10-05-2016'

希望 start_date 總是小於 expiry_date

SELECT * FROM Task WHERE start_date <= '12-05-2016' AND expiry_date >= '10-05-2016'

暫無
暫無

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

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