2015-03-02 90 views
0

我試圖計算每月的記錄數。在兩個日期之間獲取記錄的問題(時間戳)

問題:

1.如果我試圖從(MM/DD/YYYY)01/01/201503/02/2015計數的記錄數,那隻能說明從二月(2)和三月(3)一些如何截斷揚記錄(1)。

2.如果我嘗試從12/01/2014搜索到03/02/2015查詢不顯示任何輸出。我的表和查詢。

我已經檢查了db它有12月和1月的月份記錄。

Table : works 

work_id | desc | create_date (timestamp) 


SELECT count(`work_id`) as tot 
    , MONTH(`create_date`) as mon 
FROM `works` 
WHERE bus_id_fk ="'. $_SESSION['bus_id_fk'].'" 
    and DATE_FORMAT(`create_date`,"%m/%d/%Y") BETWEEN "'. $sd .'" AND "'. $ed .'" 
GROUP BY YEAR(create_date), MONTH(create_date) 

NB: $sd = start date, $ed = end date 
+0

爲什麼' dateformat'?刪除數據格式並嘗試與簡單的'create_date'進行比較。還有什麼是'startdate'和'enddate'的數據類型 – 2015-03-02 07:33:55

+0

$ sd和$ ed是'mm/dd/yyyy'形式的用戶輸入,因此'dateformat' – Bender 2015-03-02 07:58:44

+0

如果數據類型爲datetime,則不需要格式化比較 – 2015-03-02 08:01:53

回答

0

你可以試試這樣:

SELECT count(`work_id`) as tot 
    , MONTH(`create_date`) as mon 
FROM `works` 
WHERE bus_id_fk ="'. $_SESSION['bus_id_fk'].'" 
GROUP BY YEAR(create_date), MONTH(create_date) 

你仍然有差距,也就是幾個月沒有記錄,但在這種情況下計數爲0

+0

我需要兩個日期之間的值,您的代碼將從所有年份和所有月份中提取記錄 – Bender 2015-03-02 07:10:19

相關問題