0

我需要这个查询的帮助,这个工作正常,问题是它从ingresos. 我只需要检索上个月和当年的记录。

我已经尝试过INTERVAL 1 MONTH,但它会根据今天返回上个月的数据。我需要上个月的记录,不计算从第一个到最后一个日期。

这是第一次加载页面时:

SELECT * from ingresos
where fechaReporteING < DATE_SUB(CURDATE(),INTERVAL DAYOFMONTH(CURDATE()) DAY)

这是用户选择特定月份时:

SELECT * from ingresos
where fechaReporteING < DATE(CONCAT(YEAR(CURDATE()),"-",'.$_POST['mes'].',"-","0"))
4

1 回答 1

0

这对我有用。它使用 PHP 根据用户选择的月份计算日期。

<?php
//Get your users month.
$month = isset($_GET['mes'])? $_GET['mes'] : "04";
//Starting date string `current year`-`user month`-`first day`
$startDateText = date('Y') . "-" . $month . "-01";

//Add one month to the starting date.
$startDate = date_create($startDateText);
$endDate = date_add($startDate, date_interval_create_from_date_string('1 month'));

//String representation of the date
$endDateText = date_format($endDate, 'Y-m-d');

echo "<br><br>Search for records on or after $startDateText but before $endDateText.<br><br>";

$query = "SELECT * FROM ingresos
    WHERE fechaReportING >= '$startDateText' && fechaReportING < '$endDateText' ";

$allData = mysqli_query($db_conx, $query) or printf(mysqli_error($db_conx));
$totalDataRows = mysqli_num_rows($allData);
....
....
?>
于 2013-05-13T02:30:23.477 回答