如何从mysql表字段格式2013-01-01中选择年份和月份的不同值

时间:2014-01-06 11:08:31

标签: php mysql ajax

我有以下数据表

"id","date_occurred","country","town","quantity"
"1","2012-06-01","England","Andover","82"
"2","2012-06-01","England","Colchester","569"
"3","2012-06-01","England","Farnham","1"
"4","2012-06-01","England","England","4"
"5","2012-06-01","England","America","13"
"6","2012-06-01","America","England","114"
"7","2012-06-02","England","Andover","4"
"8","2012-06-02","England","Colchester","207"
"9","2012-06-02","America","England","14"
"10","2012-06-03","England","Andover","3"
"11","2012-06-03","England","Colchester","72"
"12","2012-06-03","England","America","1"
"13","2012-06-03","America","England","15"
"14","2012-07-04","England","Andover","1"
"15","2012-07-04","England","Colchester","309"
"16","2012-07-04","England","America","4"
"17","2012-07-04","America","England","11"
"18","2012-08-05","England","Andover","2"
"19","2012-08-05","England","Colchester","319"
"20","2012-08-05","England","Farnham","1"
"21","2012-08-05","England","America","4"
"22","2012-08-05","America","England","25"
"23","2012-08-06","England","Andover","93"
"24","2013-06-06","England","Colchester","542"
"25","2013-06-06","England","Farnham","1"
"26","2013-06-06","England","England","4"
"27","2013-06-06","England","America","7"
"28","2013-06-06","America","England","115"

当我运行下面的独立查询时,我会生成我需要的结果。

给定月份查询的每个国家/地区的每日总销售额:

SELECT date_occurred, country, SUM(quantity)
FROM tableA 
WHERE YEAR(date_occurred) = 2013 AND MONTH(date_occurred) = 6
GROUP BY date_occurred, country

特定月份每个国家/地区的每日总销售额

2012-06-01 England 669
2012-06-01 America 114
2012-06-02 England 211 

我创建了一个ajax下拉列表,用三个选择框查询数据库

enter image description here
问题

我的Ajax脚本产生3个变量
    $ date_o     $国家     $ town

通过$ _POST

如何单独使用变量来创建上述查询?

我尝试了什么

下面的查询使用$ country变量并且有效。

 SELECT date_occurred, country, SUM(quantity) AS quantity
 FROM TableA
 WHERE YEAR(date_occurred) =2013
 AND MONTH(date_occurred) = 6 AND country ='$country'
 GROUP BY date_occurred , country = '$country'

但是我尝试了许多排列只使用$ _POSTED值来生成查询 但都没有成功。

**所需的出现如下。 **

 SELECT $date_o, $country, SUM(quantity) AS quantity
 FROM TableA
 WHERE YEAR($date_o) = year_part_of_$date_o
 AND MONTH($date_o) = month_part_of_$date_o AND country ='$country'
 GROUP BY $date_o , country = '$country'

我认为我需要从$ date_o变量中删除月份和年份,但不能解决它。 欢迎任何简单的答案或建议!提前谢谢。

2 个答案:

答案 0 :(得分:0)

$year = substr($date_o, 0, 4);
$month = substr($date_o, 5, 2);

如果您在一个月内不需要前导零,那么

$month = ltrim(substr($date_o, 5, 2), '0');

答案 1 :(得分:0)

您可以尝试

$year = date('Y',strtotime($date_o));
$month = date('n',strtotime($date_o));

这可以给出输出为2013,6(不是06:如果你需要06'm'代替'n')