mySQL-上个月的全部时间
我试图使用以下语句检查上个月发生的所有记录mySQL-上个月的全部时间,mysql,sql,date,between,Mysql,Sql,Date,Between,我试图使用以下语句检查上个月发生的所有记录 Select * from statistics where statistics_date BETWEEN date_format(NOW() - INTERVAL 1 MONTH, '%Y-%m-01') AND last_day(NOW() - INTERVAL 1 MONTH ) 但是,所选内容不包括最后一天。我想要的是从一个月的第一秒到最后一秒。其中month(statistics_date)=month(NOW())-1=日
Select * from statistics
where statistics_date
BETWEEN date_format(NOW() - INTERVAL 1 MONTH, '%Y-%m-01')
AND last_day(NOW() - INTERVAL 1 MONTH )
但是,所选内容不包括最后一天。我想要的是从一个月的第一秒到最后一秒。
其中month(statistics_date)=month(NOW())-1
对于日期和时间戳的工作来说是出了名的糟糕,因为它的结束日期是错误的
以下是您需要的:
首先,让我们计算本月的第一天。你说得对极了
DATE_FORMAT(NOW(),'%Y-%m-01')
接下来,让我们计算上个月的第一天:
DATE_FORMAT(NOW(),'%Y-%m-01') - INTERVAL 1 MONTH
现在,我们选择间隔中的记录
Select *
from statistics
where statistics_date >= DATE_FORMAT(NOW(),'%Y-%m-01') - INTERVAL 1 MONTH
and statistics_date < DATE_FORMAT(NOW(),'%Y-%m-01')
选择*
根据统计数字
其中statistics\u date>=日期格式(NOW(),“%Y-%m-01”)-间隔1个月
和统计数据\u日期<日期\u格式(现在(),“%Y-%m-01”)
您是否看到如何使用>=
选择日期范围的开头,以及使用选择日期范围的结尾?这只考虑同一个月,而不是同一年。这在二月有效,但在一月无效。它也会在多年数据集上出错。因此,投票被否决。