当前位置: 首页 > 面试题库 >

我如何从MySQL中获取日期的月份

宗意蕴
2023-03-14
问题内容

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

SELECT * 
  FROM table 
 WHERE amount > 1000

但是我想获取限制在某个月和一年中的结果(基于用户的输入)…我试图这样做:

SELECT * 
  FROM table 
 WHERE amount > 1000 
   AND dateStart = MONTH('$m')

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

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


问题答案:

您很接近-向后进行比较(假设startDate是DATETIME或TIMESTAMP数据类型):

SELECT * 
  FROM table 
 WHERE amount > 1000 
   AND MONTH(dateStart) = {$m}

注意事项:

  • 请注意,您正在使用mysql_escape_string或冒着SQL注入攻击的风险。
  • 列上的函数调用意味着如果存在索引,则无法使用

备择方案:

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

WHERE startdate BETWEEN STR_TO_DATE([start_date], [format]) 
                    AND STR_TO_DATE([end_date], [format])

请参阅文档以了解格式语法。

参考:

  • 之间
  • STR_TO_DATE


 类似资料:
  • 问题内容: 我在String上有个约会,像这样: 我想将其划分为: 做这个的最好方式是什么? 问题答案: 在Java中拆分字符串的一种方法是使用.split(“ regex”),该方法根据提供的模式拆分字符串,并返回String数组。 获取当前日期:您还可以通过更改传递给SimpleDateFormat的值来更改日期格式。不要忘记进口。

  • 当我使用以下代码时,Object错误。 谁能告诉我如何从年、月和日的值中获取Date对象?

  • 问题内容: 我必须获取mysql中两个日期之间的月份列表。 问题答案: SQLFiddle演示

  • 问题内容: 我正在做一些报告,我想获取特定月份(例如2014年1月)中的所有日期,以及执行此“ SQL”时的日期: 我想得到这个清单: 如果我这样做“ SQL”: 我想得到这个清单: 如果我这样做“ SQL”: 我想得到这个清单: 这有可能吗,还是我应该自己为下一个100年绘制日期表:) 问题答案: 这是此问题的mysql / java解决方案。 创建表语句: Java代码: 我使用此sql获取日

  • 问题内容: 我有一个随机日期数组(不是来自MySQL)。我需要按一周将它们分组为Week1,Week2,依此类推,直到Week5。 我所拥有的是: 我需要的是一个通过提供日期来获取月份的星期数的功能。 我知道可以通过执行操作获得 周号,但是本周号是年份(1-52)之间的数字,但是我只需要一个月的周号,例如,在2015年9月有5周: 第1周=第1至第5 第2周= 6日至12日 第3周= 13日至19

  • 问题内容: 如何从Date对象()中将月份作为整数? 问题答案: 您还可以使用Java 8中的java.time包并将您的对象转换为对象,然后仅使用方法。 请注意,此处的月份值是1到12,与adarshr的答案相反,月份值是0到11。 但是正如Basil Bourque在评论中所说,首选方法是使用该方法获取枚举对象。