2013-01-07 45 views
0

不能寫一個完整的函數來比較當前月份和年份我的數據庫m/y。數據庫中的日期來自now()函數。我想根據這個比較來總結成本。例如:比較當前年份和月份到數據庫輸入y/m在sql查詢

$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]; 

這是否會通過數據庫的工作和總結?

+0

解釋'$ currentDate'格式。 –

+0

不需要使用內部選擇查詢。您可以直接比較日期。什麼是你使用的日期格式? –

+0

我更新了帖子。當前日期正確顯示今天的年份和月份。 – denikov

回答

1

不要這樣做,如果您希望使用索引,請不要將任何函數(如DATE_FORMAT()函數)應用於列(如OrderDate列)。試試這個,如果你可以在應用程序(PHP)代碼創建個月的固定啓動:如果你喜歡來處理它在MySQL

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 

或本:

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 ; 
+0

感謝您的意見,但我不知道我是否可以使用它。我想在成員頁面上顯示成員的總成本。所以當一個新月開始時,它需要重置。它需要月份到月份,所以沒有結束日期 – denikov

+0

這就是它的作用。它彙總了本月的所有成本(2013年1月)。第一個版本需要一些PHP代碼。第二個版本將無需任何額外的代碼。 –

+0

,第二個版本每個月都會這樣做? – denikov

相關問題