我已经尝试但无法想象我如何选择,有一个LIKE和一个更大的条件:
SELECT * FROM table WHERE date > '2011-12-31' AND date LIKE "%-12-31"
因此,如果用户发送date
作为以下内容:1950-12-31
,我需要的所有日期都比发布日期更长,哪个月和日期类似%-12-31
答案 0 :(得分:4)
请勿使用LIKE
。试试这个
SELECT *
FROM table
WHERE
date > '2011-12-31'
AND MONTH(date) = 12
AND DAY(date) = 31
我没有MySQL测试,但你明白我希望。
答案 1 :(得分: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)
;
答案 2 :(得分:1)
考虑到这些解决方案需要全表扫描,我不建议任何需要在相等左侧使用函数的解决方案;大桌上的禁忌。
我建议在构造查询之前确定两个日期范围,然后简单地使用BETWEEN。还要在日期列上添加索引。
select * from table1 where date between :1 and :2
其中:1和:2是参数。
HTH