Mysql 在两个日期(时间戳)之间获取记录的问题
我试图统计每个月的记录数 问题: 1.如果我尝试计算从(mm/dd/yyyy)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_
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并尝试与simplecreate\u date
进行比较。另外,startdate
和enddate
$sd和$ed的数据类型是用户以mm/dd/yyyyy
的形式输入的,因此dateformat
如果数据类型为datetime,则在比较时不需要格式化它