我希望能够使用以下语句从mysql中获取结果:
SELECT * FROM table WHERE amount > 1000
但是我想获取限制在某个月和一年中的结果(基于用户的输入)…我试图这样做:
SELECT * FROM table WHERE amount > 1000 AND dateStart = MONTH('$m')
… $m一个月,但它给了错误。
$m
在该表中,它实际上有两个日期: startDate和endDate,但我注重startDate。输入值为月份和年份。我该如何措辞根据当年那个月获得结果的SQL语句?
startDate
endDate
您很接近-向后进行比较(假设startDate是DATETIME或TIMESTAMP数据类型):
SELECT * FROM table WHERE amount > 1000 AND MONTH(dateStart) = {$m}
因为在列上使用函数不能使用索引,所以更好的方法是使用BETWEEN和STR_TO_DATE函数:
BETWEEN
STR_TO_DATE
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format]) AND STR_TO_DATE([end_date], [format])
请参阅文档以了解格式语法。