2015-03-02 60 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

相关问题