mysql函数date_format统计刷选按年月日统计的数据

/*原型*/
SELECT
count(did) AS sum,
date_format(releasetime, '%Y-%m-%d') AS releasetime
FROM hengtu_demand
WHERE 1
GROUP BY
date_format(releasetime, '%Y-%m-%d') /*按年分组 @参数 需求id sid=1*/
SELECT
b.sid,
b.`name` as sname,
count(did) AS value,
     date_format(releasetime, '%Y') AS name
FROM
hengtu_demand a
LEFT JOIN hengtu_service b ON a.sid = b.sid
WHERE
b.`status` = 1
AND b.sid = 1
GROUP BY
date_format(a.releasetime, '%Y') /*按月分组 @参数 需求id sid=1 @参数 年份 2014*/
SELECT
b.sid,
b.`name` as sname,
count(did) AS value,
date_format(releasetime, '%Y') AS year,
date_format(releasetime, '%m') AS month,
date_format(releasetime, '%m') AS name
FROM
hengtu_demand a
LEFT JOIN hengtu_service b ON a.sid = b.sid
WHERE
b.`status` = 1
AND b.sid = 1
GROUP BY
date_format(a.releasetime, '2014-%m') /*按日分组 @参数 需求id sid=1 @参数 年份 2014 @参数 月份 1月*/
SELECT
b.sid,
b.`name` as sname,
count(did) AS value,
date_format(releasetime, '2014') AS year,
date_format(releasetime, '11') AS month,
date_format(releasetime, '%d') AS day,
date_format(releasetime, '%d') AS name
FROM
hengtu_demand a
LEFT JOIN hengtu_service b ON a.sid = b.sid
WHERE
b.`status` = 1
AND b.sid = 1
GROUP BY
date_format(a.releasetime, '2014-11-%d') /**按年月查询加入where条件 正确标准语句*/
SELECT
b.sid,
b.`name` AS sname,
count(did) AS value,
date_format(releasetime, '%Y') AS year,
date_format(releasetime, '%m') AS month,
date_format(releasetime, '%d') AS day,
date_format(releasetime, '%d') AS name
FROM
hengtu_demand a
LEFT JOIN hengtu_service b ON a.sid = b.sid
WHERE
b.`status` = 1
AND b.sid = ".$sid."
AND date_format(releasetime, '%m') = ".$month."
GROUP BY
date_format(
a.releasetime,
'".$year."-".$month."-%d'
) /*
*如果数据库时间是以时间戳格式储存的就使用form_unixtime函数
*/

  使用示例

 /*
*使用需求榜 总报表 第一步
*/
function headreport(){
$demandsortcount=M()->query("SELECT b.sid,b.`name`,COUNT('b.name') AS value
               FROM hengtu_demand a
               LEFT JOIN hengtu_service b ON a.sid = b.sid
               WHERE b.`status` = 1 GROUP BY b.`name` ORDER BY value DESC");
return $demandsortcount;
}
/*
*使用需求榜 总报表 第二步 按年份分组
*@param 需求id sid=1
*/
function yearreport($sid=''){
$demandsortcount=M()->query("SELECT b.sid,b.`name` as sname,count(did) AS value,date_format(releasetime, '%Y') AS year,
               date_format(releasetime, '%Y') AS name FROM hengtu_demand a
        LEFT JOIN hengtu_service b ON a.sid = b.sid
               WHERE b.`status` = 1 AND b.sid = ".$sid."
               GROUP BY date_format(a.releasetime, '%Y')");
return $demandsortcount;
}
/*
*使用需求榜 总报表 第二步 按月份分组
*@param 需求id sid=1
*@param 年份 year=2014
*/
function monthreport($sid='',$year=''){
$demandsortcount=M()->query("SELECT b.sid,b.`name` AS sname,count(did) AS value,date_format(releasetime, '%Y') AS year,
               date_format(releasetime, '%m') AS month,date_format(releasetime, '%m') AS name FROM hengtu_demand a
               LEFT JOIN hengtu_service b ON a.sid = b.sid
               WHERE b.`status` = 1 AND b.sid = ".$sid." AND date_format(releasetime, '%Y') = ".$year."
               GROUP BY date_format(a.releasetime,'%Y-%m')");
return $demandsortcount;
}
/*
*使用需求榜 总报表 第二步 按日份分组
*@param 需求id sid=1
*@param 年份 year=2014
*@param 月份 month=3月
*/
function dayreport($sid='',$year='',$month=''){
$demandsortcount=M()->query("SELECT b.sid,b.`name` AS sname,count(did) AS value,date_format(releasetime, '%Y') AS year,
               date_format(releasetime, '%m') AS month,date_format(releasetime, '%d') AS day,
               date_format(releasetime, '%d') AS name FROM hengtu_demand a
               LEFT JOIN hengtu_service b ON a.sid = b.sid
               WHERE b.`status` = 1 AND b.sid = ".$sid." AND date_format(releasetime, '%Y') = ".$year." AND date_format(releasetim               e, '%m') = ".$month."
               GROUP BY date_format(a.releasetime,'%Y-%m-%d')");
return $demandsortcount;
}
上一篇:利用智能手机(Android)追踪一块磁铁(一)


下一篇:WinForm多线程+委托防止界面卡死