0

我有付款的数据库记录。在date现场我有dd-month-year来自日期选择器的所有 3 个选项。

付款日期

现在我想知道一个月的总付款提交或日期的任何特定日期。

   if($_POST['date']!='' ){
      $query ="SELECT SUM(submit) AS value_sum FROM payment where date='".$_POST['date']."' ";
      $result=mysql_query($query,$con);
      $row = mysql_fetch_assoc($result); 
      $sum = $row['value_sum'];
   }

我如何submit从这张表中计算一个月的总数?

我正在使用的月份:

<p class="name">
<td>
  <label for="name1">By Month</label>
</td>
<td>
<select name="month">
  <option>Month</option>
  <option value="JAN">January</option>
  <option value="FEB">February</option>
  <option value="MAR">March</option>
  <option value="APR">April</option>
  <option value="MAY">May</option>
  <option value="JUN">June</option>
  <option value="JUL">July</option>
  <option value="AUG">August</option>
  <option value="SEP">September</option>
  <option value="OCT">October</option>
  <option value="NOV">November</option>
  <option value="DEC">December</option>
</select>
</td>
</p>
4

3 回答 3

2

最好从date使用 MySQL 的MONTH()函数中提取月份。因此,假设您可以安排将 1 月作为 1 传递,将 2 月作为 2 传递,等等。使用类似的查询

SELECT SUM(submit) AS value_SUM
FROM payment
WHERE MONTH(date)=required_month
AND YEAR(date)=required_year

有时间的时候看看 MySQL日期和时间函数

检查该链接后,我看到有一个MONTHNAME功能可以在您通过一月、二月等时起作用。在这种情况下,查询是

SELECT SUM(submit) AS value_sum
FROM payment
WHERE MONTHNAME(date)=required_month
AND YEAR(date)=required_year

在Barmar发表评论后,编辑为添加AND YEAR...到两个查询中。当然,如果您确实想要所有一月份的总数,您可以将其省略。此外,如果您不想让您的用户指定当前年份,或者您希望它默认,请在您的 PHP 代码中进行required_year安排。YEAR(CURRENT_DATE())

在下面的 OP 评论之后再次编辑,并考虑到他上面的评论datevarchar.

我假设它$_POST['date']包含您想要总计的月份中的日期。将下面的行替换为您的行 `$query = ...'

$query =  'SELECT SUM(submit) AS value_sum FROM payment';
$query .= 'WHERE MONTH(CONVERT(datetime, date))';
$query .= '=MONTH(CONVERT(datetime,' . $_POST['date'] . '))';
$query .= 'AND YEAR(CONVERT(datetime, date))';
$query .= '=YEAR(CONVERT(datetime, ' . $_POST['date'] . '))';
于 2013-06-17T15:06:16.513 回答
1
$query ="SELECT SUM(submit) AS value_sum FROM payment where date LIKE '%".$_POST['date']."%' ";

使用这样的方法,您可以获得所有结果,例如,日期中包含“MAY”。

于 2013-06-17T14:59:13.257 回答
0
SELECT SUM(submit) AS value_sum FROM payment where date BETWEEN $_POST['date1'] AND     
$_POST['date2'];
于 2013-06-17T15:01:06.153 回答