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 回答