我有一个MySQL数据库,我用以下格式存储日期
2017-04-03
我需要拆分或搜索日期以获取我在DB中所有日期之间的1月,2月,3月等所有日期和记录
$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 :(得分: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
答案 1 :(得分: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月等等