Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL:计算有特定日期的列中所有数字的总和_Php_Mysql_Sum - Fatal编程技术网

Php MySQL:计算有特定日期的列中所有数字的总和

Php MySQL:计算有特定日期的列中所有数字的总和,php,mysql,sum,Php,Mysql,Sum,如何获得特定月份的列价格之和 日期列是varchar(10),日期格式是European(dd-mm-yy) 以下是我的表格示例: 当前选择我使用的所有价格总和: case 'get': $q=mysql_real_escape_string($_GET['q']); $query="SELECT sum(price) FROM Fuel"; $result = mysql_query($query);

如何获得特定月份的列价格之和

日期列是varchar(10),日期格式是European(dd-mm-yy)

以下是我的表格示例:

当前选择我使用的所有价格总和:

case 'get':

            $q=mysql_real_escape_string($_GET['q']);
            $query="SELECT sum(price) FROM Fuel";

            $result = mysql_query($query);


            $json = array();
            while($row = mysql_fetch_array($result))
            {
                $json['price']=$row['price'];
            }
            print json_encode($json);




            mysql_close();


            break;

那么,我如何获得2012年9月的列价格之和。

这将适用于您:

SELECT 
  sum(price) 
FROM Fuel
WHERE datefield = 'somedate';
但是您必须注意在日期参数中输入的格式,因为它将作为字符串文本而不是日期对象进行比较。但是,您应该将这些日期存储在数据类型为
DATE
的列中

更新:


我如何选择09的所有月份的总和

要仅选择特定月份的记录,可以使用MySQL函数,如下所示:


首先更改
日期
列的数据类型(请记住适当更新应用程序代码):

ALTER TABLE Fuel ADD newdate;
更新燃料组newdate=STR_至_日期(日期,%d-%m-%Y');
更改表格燃油下降日期,先更改新日期;
然后你可以:

从日期介于“2012-09-01”和“2012-09-30”之间的燃料中选择总和(价格)

那么,这里的问题是什么?那么,我如何获得2012年9月的列价格之和。它不是日期字段。它唯一的名字是“日期”。这是一个varchar(10),它还能工作吗?如果我更改它的数据类型,我会丢失所有的值吗?@jQuerybeast-尝试创建一个带有日期对象的新表。然后使用带有
str_to_date
函数的
INSERT-INTO-newtable-SELECT from-oldtable
,从这些字符串值中为您提供日期对象。我如何选择所有月份的总和?因为我的日期是2012年9月12日。对于您的示例,我只能选择dd mm yyyyWHERE DATEFILD格式的特定日期的总和,如“%-09-%”;将为您提供文本日期为格式的09个月。dd-mm-yyyy@jQuerybeast:它将用MySQL的内部类型之一替换原始字符串列,因此MySQL将识别数据并将其作为日期进行处理,使您能够执行上述操作。这些值将被转换(通过
UPDATE
操作)。在一个附带问题上,我可以更改日期的格式吗?目前是yy毫米-dd@jQuerybeast:在内部,MySQL
DATE
键入3字节整数,打包为
YYYY×16×32+MM×32+DD
;它以
'YYYY-MM-DD'
格式显示它们。如果希望以其他格式检索值,请使用MySQL函数。
SELECT 
  SUM(price) 
FROM Fuel
WHERE MONTH(`date`) = 9;