将当前年份和月份与在sql查询中输入的数据库y / m进行比较

时间:2013-01-07 15:39:52

标签: php mysql date select

无法编写完整的函数来将当前月份和年份与我的数据库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];

是否可以通过数据库进行总结?

1 个答案:

答案 0 :(得分: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 ;