2

我已经尝试过,但无法想象如何选择 LIKE 和 GREATER 条件:

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

因此,如果用户发送date如下:1950-12-31,我需要获取所有日期大于发布日期以及哪个 MONTH 和 DAY 是 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 是参数。

高温高压

于 2013-01-11T11:53:48.190 回答