2011-03-29 198 views
0
SELECT COUNT(*) AS count, state, DATE_FORMAT('%m/%d', registered) AS date_formatted 
FROM users 
WHERE CAST(registered AS DATE) > DATE_SUB(CURDATE(), INTERVAL 7 DAY) 
GROUP BY state, date_formatted 

以上是我們用來從我們的數據庫中返回信息的查詢。mySQL查詢不返回日期

我們的日期將被保存爲:2011-03-28 14:36:48(時間字段)

返回的數據如下:

Array 
(
    [] => Array 
     (
      [act] => 1 
      [nsw] => 1 
      [nt] => 1 
      [qld] => 3 
      [sa] => 1 
      [tas] => 1 
      [vic] => 1 
      [wa] => 4 
     ) 

) 

而且這還不是返回數組中的日期。

while($row = mysql_fetch_array($query)) { $my_array[$row['date_formatted']][$row['state']] = $row['count']; } 

這裏是我們用來形成數組的php代碼。

謝謝:)

+1

我不能相信,查詢與3個表達式'SELECT'條款你8個值在PHP中。這是不可能的。 PS:'CAST(註冊AS DATE)'在這裏投射是沒有意義的,並且拒絕使用索引的可能性。 – zerkms 2011-03-29 05:42:55

回答

3

DATE_FORMAT發生的日期作爲第一個參數,格式爲第二個參數:

SELECT COUNT(*) AS count, state, DATE_FORMAT(registered ,'%m/%d') 
... 
+0

謝謝,我把他們弄錯了,傻了。>< – Latox 2011-03-29 06:07:47