2017-04-03 85 views
0

我有一個MySQL數據庫,我存儲日期的格式如下SQL查詢來搜索日期在DB

2017-04-03 

我需要拆分或搜索歷史可以讓所有的日期和記錄代表一月,二月,三月等我在DB中的所有日期之間

$result = mysql_query("SELECT * FROM lbs_trace_etrack WHERE MONTH(lbs_date) = MONTH(CURDATE()) AND YEAR(lbs_date) = YEAR(CURDATE()) ORDER BY lbs_date DESC, lbs_time DESC"); 

我使用上面的查詢來搜索當前的月份和年份。我正在繪製一張圖表,顯示每個月的統計數據,這是我希望每個月計數的原因

我需要按以下格式放置搜索計數。

var seriesData = [{ 
    name: 'Hijackings', 
    data: [Value Jan, Value Feb, Value March, and all the other months ] 
}, { 

如果任何人都可以直接幫我在每個月的查詢過濾器會幫我很大

回答

0

我發現這個查詢工作

$query = "SELECT rep_date FROM `bureau` WHERE MONTH(rep_date) = 1 AND type = 'Overdue'"; 
     $result = mysql_query($query); 
echo " ".mysql_num_rows($result)." " 
?> 
          <?php 
while($rows=mysql_fetch_array($result)){ 
?> 

使用MONTH(rep_date)= 1將過濾所有1月份更改1到2會做2月等等

2

嘗試此查詢:

select count(*) as total, MONTH(lbs_date) as track_month, YEAR(lbs_date) as track_year 
FROM lbs_trace_stack t 
GROUP BY track_year, track_month 

或者,如果你只是想一個月只需要一年,你只需要刪除

MONTH(lbs_date) and track_month --> if you want to see the year remove this 

YEAR(lbs_date) and track_year --> if you want to see the month remove this 

從選擇部分和按部分組。

上癮的是,如果你想過濾一個或多個月,你當然可以使用where語句來設置你的過濾器。 有多種方法可以寫一些地方條件做同樣的事情,例如:

SELECT COUNT(*) as total, MONTH(lbs_date) as track_month 
FROM lbs_trace_stack t 
-- WHERE track_month = 2 -> February 
-- WHERE track_month > 2 -> Form March 
-- WHERE track_month = 2 OR track_month = 3 -> February or March 
-- WHERE MONTHNAME(lbs_date)='February' --> if you want to use month name 
GROUP BY track_month 
+0

這很好,但有一些方法,我可以陳述在這個查詢中,它應該組合所有1月在一起。我將不得不運行一個新的查詢來分組其他月份我可以在某處指定它應該分組的月份。我需要將幾個月分組在一起,即使我必須運行不同的查詢,但需要逐月獲取它們,並在該查詢中指出它是一個特定月份,它應該過濾 –

+0

我剛剛編輯答案,請檢查現在是否適合您需要。 – user2548436

+0

它仍然過濾所有月份我需要指定月份我已經嘗試過這個 $ query =「select count(*)as total,MONTH(rep_date)as track_month FROM bureau WHERE type ='Overdue' AND MONTH(rep_date) = 1 GROUP BY track_month「〜where MONTH(rep)date)= 1試圖關注月01 01月 –