找到两个日期之间的金额总和

Posted

技术标签:

【中文标题】找到两个日期之间的金额总和【英文标题】:find the sum of amount between 2 dates 【发布时间】:2014-09-17 10:12:05 【问题描述】:

我有一个包含 id、amount、date 的表付款。 我需要计算两个日期之间的总金额.. 我有一个表格,用户可以在其中输入开始日期和结束日期..我需要计算两个日期之间的总金额..

查询

$result = mysql_query("SELECT sum(amount) 
                       FROM payment 
                       WHERE (date BETWEEN '$date' and '$date1')");
I m getting the wrong sum..

这是它从数据库中获取的记录

捐款总额:600

Membership No |  Month    |  Date        |  Amount
--------------+-----------+--------------+-----------
14015         |  October  | 2014-09-13   |   600
14017         |  October  | 2014-09-14   |   400
14013         |  October  | 2014-09-17   |   100
14015         |  November | 2014-09-17   |   500

【问题讨论】:

$date 和 $date1 的值是多少? 使用日期字段在表单中输入 @user3675208 他问过你测试过的值吗?给一个演示你测试的日期 我可以知道您在数据库中日期字段的数据类型 错误是日期格式 【参考方案1】:

输入格式为“dd MMM yyyy”

"SELECT sum(amount) 
                   FROM payment 
                   WHERE (cast(date as nvarchar(12) BETWEEN '$date' and '$date1')"

"SELECT sum(amount) 
                   FROM payment 
                   WHERE (convert(nvarchar(12),date,106) BETWEEN '$date' and '$date1')"

【讨论】:

【参考方案2】:

您可以尝试格式化日期变量,例如 --`

  $date="13-09-2014";
    $date1="17-09-2014";

    $date=date_format ( $date, 'Y-m-d' );
    $date1=date_format ( $date1, 'Y-m-d' );

    $result = mysql_query("SELECT sum(amount) 
                       FROM payment 
                       WHERE (date BETWEEN '$date' and '$date1')");

`

【讨论】:

【参考方案3】:

查询-

        SELECT sum(amount) FROM payment WHERE date BETWEEN  
        STR_TO_DATE('$date','%m/%d/%Y') 
        and 
        STR_TO_DATE('$date1','%m/%d/%Y')

SQL FIDDLE DEMO

【讨论】:

以上是关于找到两个日期之间的金额总和的主要内容,如果未能解决你的问题,请参考以下文章

两个日期之间实体属性的核心数据总和

如何在laravel项目中找到两个日期之间的结算金额

选择具有累积总和的两个日期之间的日期和值

查询以选择某些条件为真的两个日期之间的列的总和

在数组中找到两个总和最小的非后续元素

根据开始日期和结束日期每月分配金额