根据列值检索行数据

时间:2015-06-18 08:46:06

标签: php sql substring

我正在尝试获取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个月的任何细节。我该怎么办?

2 个答案:

答案 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'