我如何从mysql中获取月份

net*_*rox 23 php mysql sql phrase

我希望能够使用如下语句从mysql中获取结果:

SELECT * 
  FROM table 
 WHERE amount > 1000 
Run Code Online (Sandbox Code Playgroud)

但是我想把结果限制在一个月和一年(根据用户的输入)......我试着这样:

SELECT * 
  FROM table 
 WHERE amount > 1000 
   AND dateStart = MONTH('$m')   
Run Code Online (Sandbox Code Playgroud)

... $m是一个月,但它给了错误.

在该表中,它实际上有两个日期: startDateendDate,但我注重startDate.输入值为月份和年份.如何根据当年的那个月来说明获得结果的SQL语句?

OMG*_*ies 39

你很接近 - 向后得到比较(假设startDate是DATETIME或TIMESTAMP数据类型):

SELECT * 
  FROM table 
 WHERE amount > 1000 
   AND MONTH(dateStart) = {$m}
Run Code Online (Sandbox Code Playgroud)

注意事项:


备择方案:


因为在列上使用函数不能使用索引,所以更好的方法是使用BETWEENSTR_TO_DATE函数:

WHERE startdate BETWEEN STR_TO_DATE([start_date], [format]) 
                    AND STR_TO_DATE([end_date], [format])
Run Code Online (Sandbox Code Playgroud)

有关格式化语法,请参阅文档.

参考:



Gat*_*ter 7

使用该month()功能.

select month(now());
Run Code Online (Sandbox Code Playgroud)