Select
選擇兩個包含日期的記錄,其中包含兩個輸入日期
只是我有兩個輸入框
- 開始日期
- 結束日期
這是我的數據庫表
| 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' ;