Select

選擇兩個包含日期的記錄,其中包含兩個輸入日期

  • May 17, 2016

只是我有兩個輸入框

  1. 開始日期
  2. 結束日期

這是我的數據庫表

| id | category | start_date | end_date   |
| 1  | gold     | 2016-05-24 | 2016-05-31 |
| 2  | silver   | 2016-05-16 | 2016-05-23 |

現在當我插入如下日期時:

start_date = 2016-05-25
end_date = 2016-05-27 

我想找出輸入框中推算日期之間的類別。

我使用這個選擇查詢:

SELECT category 
FROM tablename
WHERE '$start_date','$end_date' BETWEEN start_date AND end_date; 

但我沒有得到任何結果。我知道如果你在我得到結果之後使用單個日期,但我想用兩個日期搜尋

簡單的回答:

如果您希望兩個日期列都在輸入日期之間:

SELECT category 
FROM tablename 
WHERE 'start_date' BETWEEN start_date AND end_date
 AND 'end_date' BETWEEN start_date AND end_date ;

或者,如果您希望任何日期列位於輸入日期之間:

SELECT category 
FROM tablename 
WHERE 'start_date' BETWEEN start_date AND end_date
  OR 'end_date' BETWEEN start_date AND end_date ;

或者,如果您想要任何“與輸入日期範圍重疊的範圍”

(根據想要的結果,似乎最有可能):

SELECT category 
FROM tablename 
WHERE 'start_date' <= end_date
 AND start_date <= 'end_date' ;

引用自:https://dba.stackexchange.com/questions/138716