0

現在の月と年をデータベースm/yと比較するための完全な関数を記述できません。データベース内の日付はnow()関数からのものです。この比較に基づいてコストを合計したいと思います。何かのようなもの:

$currentDate = date("Y-m");
$query = mysql_query ("SELECT SUM(cost) FROM memberorders WHERE 
         memberNumber=$memNum AND 
        (SELECT DATE_FORMAT(orderDate, '%Y-%m'))=$currentDate");

しかし、それは機能していません。それから私はそれを要約する関数の助けが必要です。

$test1 = mysql_fetch_array($query);
$total = $test1[0];

それはデータベースを調べてそれを要約するために機能しますか?

4

1 に答える 1

1

インデックスを使用する場合は、そのようにしないでくださいDATE_FORMAT()。列(列など)に関数(関数など)を適用しないでください。OrderDateアプリケーション(PHP)コードで月の固定開始を作成できる場合は、これを試してください。

SELECT SUM(cost) 
FROM memberorders 
WHERE memberNumber = $memNum 
  AND orderDate >= '2013-01-01'      -- first day of this month
  AND orderDate < '2013-02-01' ;     -- first day of next month

または、MySQLで処理する場合は、次のようにします。

SELECT SUM(cost) 
FROM memberorders 
WHERE memberNumber = $memNum 
  AND orderDate >= LAST_DAY(NOW()) + INTERVAL 1 DAY - INTERVAL 1 MONTH 
  AND orderDate < LAST_DAY(NOW()) + INTERVAL 1 DAY ;
于 2013-01-07T15:47:04.287 に答える