如何在Date1 TO Date2中编写MySQL查询?

时间:2016-06-13 05:48:01

标签: php mysql

在mysql中是否有办法可以执行类似

的操作
  

选择* FROM table WHERE(YEAR(Date)=' $ year1' AND MONTH(Date)=   ' $ month1')TO(年(日期)=' $ year2'和月(日期)=' $ month2');

enter image description here

我是编程新手,非常感谢任何帮助或建议。谢谢。

2 个答案:

答案 0 :(得分:2)

SELECT *
FROM table
WHERE Date BETWEEN STR_TO_DATE('$year1 $month1', '%Y %m') AND
                   STR_TO_DATE('$year2 ($month2+1)', '%Y %m')

实际上,使用BETWEEN可能包括您不想要的下一个月的第一天。在这种情况下,您只需使用><运算符:

SELECT *
FROM table
WHERE Date >= STR_TO_DATE('$year1 $month1', '%Y %m') AND
      Date < STR_TO_DATE('$year2 ($month2+1)', '%Y %m')

this resource我们发现:

  

STR_TO_DATE()将输入字符串未提供的所有未完成日期值设置为零。

如果您希望获得2016年2月1日至2016年3月31日(含)的范围,那么我的解决方案是在之后 2月1日之后取任何日期 之前 4月 1。

答案 1 :(得分:1)

SELECT * 来自table WHERE(date_field BETWEEN'date1'和'date2')