我想仅根据当天的日期条件选择记录,而不检查月份和年份。
Table structure
------------------------------------
id | user_id | amount | created_on
------------------------------------
如果我选择日期4月15日至4月25日,那么我需要4月15日至4月25日、3月15日至3月25日等之间的记录。
从日期中获取日期并与它进行比较似乎很容易
Select sum(amount) from sales where DATEFORMAT(created_on, %d) >= 15 and DATEFORMAT(created_on, %d) <=25
但是当我选择日期3月28日至4月5日时如何查找记录,那么我需要2月28日至3月5日、1月28日至2月5日的数据..等等
最佳答案
如果您正在使用 php。您可以比较最小和最大日期并更改您的查询,如下所示:
尝试#1:
$min_date = 15;
$max_date = 25;
尝试#2:
$min_date = 28;
$max_date = 5;
脚本:
if($min_date < $max_date)
{
$query = "Select sum(amount) from sales where DATEFORMAT(created_on, %d) >= $min_date and DATEFORMAT(created_on, %d) <=$max_date";
}
else
{
$query = "Select sum(amount) from sales where DATEFORMAT(created_on, %d) >= $min_date OR DATEFORMAT(created_on, %d) <=$max_date";
}
关于php - Mysql日期范围查询只检查日期,不检查月份和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43650706/