2

私は試してみましたが、LIKE と GREATER 条件を使用してどのように選択できるか想像できません:

SELECT * FROM table WHERE date > '2011-12-31' AND date LIKE "%-12-31"

したがって、ユーザーdateが次のように送信した場合: 1950-12-31、投稿された日付よりも大きいすべての日付と、どの月と日が LIKE であるかを取得する必要があります。%-12-31

4

3 に答える 3

4

使用しないでくださいLIKE。これを試して

SELECT *
FROM table
WHERE
    date > '2011-12-31'
    AND MONTH(date) = 12
    AND DAY(date) = 31

テストする MySQL はありませんが、期待どおりのアイデアが得られます。

于 2013-01-11T11:49:26.777 に答える
1
Select * from table1 where date> urdate
And extract(month from date) = extract (month from Urdate)
And extract(day from date) = extract (day from urdate)
;
于 2013-01-11T11:50:06.827 に答える
1

これらのソリューションには完全なテーブル スキャンが必要であることを考えると、等式の左側に関数を必要とするソリューションはお勧めしません。大きなテーブルではダメ。

クエリを作成する前に両方の日付範囲を決定し、単純に BETWEEN を使用することをお勧めします。また、日付列にインデックスを追加します。

select * from table1 where date between :1 and :2

:1 と :2 はパラメーターです。

HTH

于 2013-01-11T11:53:48.190 に答える