2011-02-04 15 views
0

私は、id、startDate、およびendDateの3つのフィールドを持つテーブルです。MYSQLを使用してテーブルから日付を取得する方法

私はレコードをstartDateとendDateの間に正確に取得する必要があります。例えば

は、私たちは、私は以下のレコードを持つテーブルを持っていますと仮定してみましょう:

id startDate endDate 

1 2011-02-05 2011-02-10 

2 2011-02-01 2011-02-06 

3 2011-02-06 2011-02-08 

たとえばたstartDateは、2011年2月5日で、終了日が2011年2月10日で、出力は次のようになります

id startDate endDate 

1 2011-02-05 2011-02-10 

3 2011-02-06 2011-02-08 

次しかし、私のクエリ番目のレコードによると、出力に登場しています。実際にそれは...

私のクエリがあるべきではありません: '2011年2月5日' AND '2011-02-10'

BETWEEN tblname WHEREたstartDateとexpiryDate FROM

SELECT *この問題を解決するには?

ありがとうございます。

答えて

3

このように2つの列を比較することはできません。 ANDおよびOR演算子はブール式を接続します。あなたのクエリは、 "どこでstartDateが真であり、かつexpiryDateがこれらの日付の間にあるか"と解釈されます。

SELECT 
    * 
FROM 
    tblname 
WHERE 
    startDate BETWEEN '2011-02-05' AND '2011-02-10' 
AND 
    expiryDate BETWEEN '2011-02-05' AND '2011-02-10' 
関連する問題