mysql 有没有办法可以做类似的事情
Select * FROM table WHERE (YEAR(Date) = '$year1' AND MONTH(Date) = '$month1') TO (YEAR(Date) = '$year2' AND MONTH(Date) = '$month2');
我是编程新手,非常感谢任何帮助或建议。谢谢。
最佳答案
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我们发现:
The STR_TO_DATE() sets all incomplete date values, which are not provided by the input string, to zero.
如果您想获取 2016 年 2 月 1 日至 2016 年 3 月 31 日(含)的范围,那么我的解决方案是取 2 月 1 日当天或之后的任何日期,并且之前 四月 1.
关于php - 如何编写 MySQL 查询 where Date1 TO Date2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37782584/