本月统计记录

时间:2014-03-03 20:45:29

标签: php mysql

我有一个表格,以MM / DD / YY格式存储日期(字段名称是日期)。我需要一个只计算当月记录的计数。从搜索来看,这就是我目前所拥有的,但有些事情是不对的。我是否需要做一个convertToDate,我的字段被称为“日期”,还是我完全错过了什么?

$totalcount = mysql_query("select count(*) as 'total' 
                           FROM state_to_state 
                           WHERE status = 99 AND type = 1 
                           AND MONTH(`date`) = MONTH(CURDATE()) 
                           AND YEAR(`date`) = YEAR(CURDATE())");

$totalnum = mysql_fetch_array($totalcount);
if($totalnum['total'] > 0) { $month_status = $totalnum['total']." this Month. "; }

1 个答案:

答案 0 :(得分:0)

你的日期不是原生的mysql日期(可能是varchar?),所以你不能直接在它们上使用mysql日期函数。 date('MM/DD/YY')无法可靠地运作:

mysql> select month('03/03/14'), month('03/18/14');
+-------------------+-------------------+
| month('03/03/14') | month('03/18/14') |
+-------------------+-------------------+
|                 3 |              NULL |
+-------------------+-------------------+

将您的日期字段转换为本机mysql日期类型,或者对性能产生巨大影响,并通过str_to_date()将它们转换为本地日期值。