我正在尝试获取renewal_date列并获取要检查的月份是我想要的确切月份,如果是,则显示该记录的详细信息。我的疑问是:
select domain_name, renewal_date
from hosting_details
where substr(renewal_date,-5,-3) = '09'
这不会给出任何结果,但当我在查询下运行时,我可以检索结果:
select domain_name, renewal_date
from hosting_details
where renewal_date = '2015-09-03'
我不想硬编码日期,我想要检索第9个月的任何细节。我该怎么办?
答案 0 :(得分:1)
您不应在(主)WHERE语句上执行函数。它不会使用索引并执行全表扫描。
SELECT domain_name,renewal_date FROM hosting_details
WHERE renewal_date >= '01-09-2015' AND renewal_date < '01-10-2015'
答案 1 :(得分:0)
您可以尝试如下:
select domain_name,renewal_date from hosting_details where
date_format(renewal_date, '%m' ) = '09'