Php 如何仅从上个月的数据库表中提取数据
我只想显示上个月的记录,不包括本月的日期。例如,今天是2月5日,我想显示1月1日到31日的记录 我有一个表-tbl_order_details,其中我需要分别获取当月和上月的所有订单记录。日期类型的列名为orderDate这是我在获取截至日期的当月行时所做的操作:Php 如何仅从上个月的数据库表中提取数据,php,mysql,Php,Mysql,我只想显示上个月的记录,不包括本月的日期。例如,今天是2月5日,我想显示1月1日到31日的记录 我有一个表-tbl_order_details,其中我需要分别获取当月和上月的所有订单记录。日期类型的列名为orderDate这是我在获取截至日期的当月行时所做的操作: SELECT COUNT(1) FROM tbl_order_details where merchantCode= '$user_code' AND MONTH(orderDate) = MONTH(CURRENT_DATE()
SELECT COUNT(1)
FROM tbl_order_details
where merchantCode= '$user_code'
AND MONTH(orderDate) = MONTH(CURRENT_DATE())
AND YEAR(orderDate) = YEAR(CURRENT_DATE())
但是我不知道如何显示不包括二月记录的一月记录避免使用日期、月、日、年、SUBSTR、左、右,比如在WHERE或JOIN中提及列,因为您不再使用所述列中存在的索引。例如:其中YEARorderDate=。。。出于上述原因,避免这样做
SELECT * FROM tbl_order_details
WHERE YEAR(orderDate) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
AND MONTH(orderDate) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)
<?php
$query_get = 'SELECT * FROM tbl_order_details WHERE YEAR(orderDate) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) AND MONTH(orderDate) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)'
?>
我建议使用如下
如果orderDate列的类型为date,请执行以下操作:
SELECT COUNT(1)
FROM tbl_order_details
where merchantCode= '$user_code'
AND orderDate BETWEEN DATE_ADD(LAST_DAY(NOW() - INTERVAL 2 MONTH), INTERVAL 1 DAY)
AND LAST_DAY(DATE_ADD(LAST_DAY(NOW() - INTERVAL 2 MONTH), INTERVAL 1 DAY));
将在上个月的第一天返回
DATE_ADD(LAST_DAY(NOW() - INTERVAL 2 MONTH), INTERVAL 1 DAY)
LAST_DAY(DATE_ADD(LAST_DAY(NOW() - INTERVAL 2 MONTH), INTERVAL 1 DAY))
返回上个月的最后一天
DATE_ADD(LAST_DAY(NOW() - INTERVAL 2 MONTH), INTERVAL 1 DAY)
LAST_DAY(DATE_ADD(LAST_DAY(NOW() - INTERVAL 2 MONTH), INTERVAL 1 DAY))
为了编写PHP代码,可以使用strotime函数从PHP本身获取月份和年份,具体取决于表的输入,然后在sql查询中对其进行格式化。例如:
<?php
$month = date("M", strtotime("previous month"));
$year = date("Y", strtotime("this year"));
$query_get = 'SELECT COUNT(1) FROM tbl_order_details where merchantCode= {$user_code} AND MONTH(orderDate) = {$month} AND YEAR(orderDate) = {$year}'
?>
你能为我们提供一些示例输入以供阅读,并为你提供任何帮助吗?你可以用PHP编写SQL,这将给你上个月的结果,你可以一起使用strotime和date函数来应用where子句。请提供你的代码?你试了多少,在哪里被击中。对usi调试更有用的是,我有一个表-tbl_order_details,其中我需要分别获取当月和上月的所有订单记录。日期类型的列名是orderDate这是我在获取当月截止日期的行时所做的:从tbl_order_details中选择COUNT1,其中merchantCode=“$user_code”和MONTHorderDate=MONTHCURRENT_date和YEARorderDate=YEARCURRENT_date,但我无法确定如何显示不包含任何日期的1月份记录2月份的记录