Mysql 在两个日期(时间戳)之间获取记录的问题

Mysql 在两个日期(时间戳)之间获取记录的问题,mysql,sql,date,Mysql,Sql,Date,我试图统计每个月的记录数 问题: 1.如果我尝试计算从(mm/dd/yyyy)01/01/2015到03/02/2015的记录数,它只显示2月(2)和3月(3)的记录,以及如何截断1月(1) 2.如果我尝试从2014年1月12日至2015年2月3日进行搜索,则查询不会显示任何输出。我的表和查询 我已经检查了db,它有12月份和1月份的记录 Table : works work_id | desc | create_date (timestamp) SELECT count(`work_

我试图统计每个月的记录数

问题:

1.如果我尝试计算从(mm/dd/yyyy)
01/01/2015
03/02/2015
的记录数,它只显示2月(2)和3月(3)的记录,以及如何截断1月(1)

2.如果我尝试从2014年1月12日至2015年2月3日进行搜索,则查询不会显示任何输出。我的表和查询

我已经检查了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

你能这样试试吗

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。

我需要两个日期之间的值,您的代码将从所有年份和所有月份中提取记录为什么使用
日期格式?删除dataformat并尝试与simple
create\u date
进行比较。另外,
startdate
enddate
$sd和$ed的数据类型是用户以
mm/dd/yyyyy
的形式输入的,因此
dateformat
如果数据类型为datetime,则在比较时不需要格式化它