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是一个月,但它给了错误.
在该表中,它实际上有两个日期: startDate和endDate,但我注重startDate.输入值为月份和年份.如何根据当年的那个月来说明获得结果的SQL语句?
OMG*_*ies 39
你很接近 - 向后得到比较(假设startDate是DATETIME或TIMESTAMP数据类型):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Run Code Online (Sandbox Code Playgroud)
因为在列上使用函数不能使用索引,所以更好的方法是使用BETWEEN和STR_TO_DATE函数:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Run Code Online (Sandbox Code Playgroud)
有关格式化语法,请参阅文档.