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