2016-09-09 12 views
0

私は、MySQLテーブルのデータを取得してHTMLテーブルに出力する次のPHPスクリプトを用意しています。私は今月の情報のみを表示するようにデータを編集したいと思います。MySQLクエリ結果を今月から表示するにはどうすればよいですか?

MySQLテーブルでは、私のテーブルにInvoiceDateという別の列があります。これはDATETIMEタイプで、これらの値が今月のものかどうかを確認できます。クエリを調整するか、現在の月の結果を自動的に表示するPHPコードのスニペットを追加して、毎月新しい値を表示するためにコードを更新する必要はありません。

これを達成する最も良い方法は何ですか?

<?php 

require_once 'config.php'; 

// create connection 
$conn = new mysqli($currentConfig['host'], $currentConfig['user'], $currentConfig['pass'], $currentConfig['name']); 
// check connection 
if ($conn->connect_error) { 
die('Connection failed: '.$conn->connect_error); 
} 

$sql = "SELECT SUM(InvoiceAmount) AS TotalBilling,SUM(ClientCostToDate) AS WIP FROM Estimates"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
// output data of each row 
while ($row = $result->fetch_assoc()) { 
    $wip = $row['WIP']; 
    $total_billing = $row['TotalBilling']; 

    // echo data into HTML table 
    echo 
    '<tbody>'.'<tr>'.'<td>'.$total_billing.'</td>'.'<td>'.$wip.'</td>'.'</tr>'.'</tbody>'; 
} 
} else { 
echo 'No results'; 
} 
$conn->close(); 

私はスタックオーバーフローの上に発見し、それが動作しません。このクエリを試してみました:

SELECT InvoiceDate, SUM(InvoiceAmount) AS TotalBilling,SUM(ClientCostToDate) AS WIP FROM Estimates WHERE DATE_FORMAT(InvoiceDate,"%m")=DATE_FORMAT(NOW(),"%m"); 

私もまた、動作しません。このクエリを見つけた:

SELECT InvoiceDate, SUM(InvoiceAmount) AS TotalBilling, SUM(ClientCostToDate) AS WIP FROM Estimates WHERE MONTH(InvoiceDate) = MONTH(now()) AND YEAR(InvoiceDate) = MONTH(now()); 

今まで私にとって適切に機能しているのは次のクエリです:

SELECT SUM(InvoiceAmount) AS TotalBilling,SUM(ClientCostToDate) AS WIP FROM Estimates WHERE InvoiceDate > '2016-09-01'; 

これは今月の結果を表示しますが、月ごとにクエリを編集する必要があるため、明らかに理想的ではありません。

+0

試してください:月(InvoiceDate)= 2 – Tarek

+0

が@ahmed:いいえ、それは買ってあげるALL月2者関係なく、今年の。 –

答えて

2

使用DATE_FORMAT

SELECT SUM(InvoiceAmount) AS TotalBilling,SUM(ClientCostToDate) AS WIP 
FROM Estimates 
WHERE date_format(InvoiceDate, '%Y-%m')=date_format(now(), '%Y-%m') 
+0

これとは別に、 '(year(invoicedate)= year(now()))&&(月(invoicedate)=月(now()))' –

関連する問題