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 に答える