php - 如何编写 MySQL 查询 where Date1 TO Date2?

标签 php mysql

mysql 有没有办法可以做类似的事情

Select * FROM table WHERE (YEAR(Date) = '$year1' AND MONTH(Date) = '$month1') TO (YEAR(Date) = '$year2' AND MONTH(Date) = '$month2');

enter image description here

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

最佳答案

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/

相关文章:

mysql - 通过 MySQL 存储过程和函数更新 180k 行太慢 - 如何加快速度

mysql - 如何向有外键的表中插入数据?

php - PHP 中的删除按钮不起作用

php - 在 php 和 javascript 中制作 "mosaic"效果

MySQL- 'lasttime' 的默认值无效

php - 如何让PHP输出声音(哔)?

php - 如何将 PHPExcel 合并单元格中的文本居中

python - 无法安装 MySQL 连接器/Python?

PHP - 应用程序配置文件存储为 - ini、php、sql、cached、php 类、JSON、php 数组?

php - 有大循环的空白页