2

私は2つの日付を言っstart_date = 2013-04-12ていend_date = 2013-04-30
て、私のテーブルには と の行が含まれていstart_date = 2013-04-12ますend_date = 2013-04-16

開始日が 2013-04-12 より大きく、end_date が 2013-04-30 よりも小さいレコードを取得したいと考えています。end_date として 2013-04-16 を持つ上記のレコードが含まれます

このクエリで試しました

SELECT * FROM TABLE_NAME WHERE (start_date <='2013-04-12' AND end_date >='2013-04-30')結果は得られませんが、 end_date 2013-04-15 を入力すると正常に動作します

4

5 に答える 5

5
SELECT
    *
FROM
    (
        SELECT
            '2013-04-12' as `start_date`,
            '2013-04-16' as `end_date`
    ) `sub`
WHERE
    (`start_date` BETWEEN '2013-04-12' AND '2013-04-30')
    AND
    (`end_date` BETWEEN '2013-04-12' AND '2013-04-30')

BETWEENより信頼できる

于 2013-04-12T10:15:29.140 に答える
3

start_date GREATER OR EQUAL 2013-04-12 と end_date LESSER OR EQUAL が必要な場合は、演算子が間違っています。

start_date <='2013-04-12' AND end_date >='2013-04-30'

次のように、start_date には >= を、end_date には <= を使用する必要があります。

start_date >='2013-04-12' AND end_date <='2013-04-30'
于 2013-04-12T10:11:40.357 に答える
1

間違った演算子を使用していると思います... start_date greater than(>=) end_date less than equal to (<=)

SELECT * FROM TABLE_NAME WHERE (start_date >='2013-04-12' AND end_date <='2013-04-30')
于 2013-04-12T10:14:34.017 に答える