一个月之间的 PHP MySQL SUM

标签 php mysql

我想在我的 PHP - MySQL 中使用 BETWEEN

例子我有表:

badge_id | balance_type | balance_amount | balance_month
110702   | aa           | 250000         | January-2013
110702   | ab           | 100000         | January-2013
110702   | aa           | 100000         | February-2013
110702   | ab           | 90000          | February-2013
110702   | aa           | 100000         | March-2013
110702   | ab           | 110000         | March-2013

现在我想对从 2013 年 1 月到 2013 年 2 月的余额月求和

SELECT balance_type AS balance_type, SUM(balance_amount) AS value_sum
FROM t_balance 
WHERE badge_id = '110702' && balance_month BETWEEN 'August-2013' 
  and 'September-2013'
GROUP BY balance_type

但它将对所有 balance_month 求和。

有什么建议吗?

最佳答案

这是因为您有 balance_month 的字符串列。 BETWEEN August-2013 and September-2013 基本上是字母表中的BETWEEN A AND S(不知道如何更好地描述它,这里缺乏英语技能)。一月的 J 和二月的 F 在 A 和 S 之间,因此 MySQL 将它们计算在内。将您的列转换为日期

WHERE ... AND STR_TO_DATE(balance_month, '%M-%Y') BETWEEN '2013-08-01' 
  and '2013-09-30'

但是,如果我是您,我会去掉该列并使用真实的日期列。否则,当您始终必须在其上使用类似 str_to_date() 的函数时,无法在其上使用索引。

关于一个月之间的 PHP MySQL SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18352829/

相关文章:

php - MySQL语法?应该很简单!

PHP将外部相对路径转换为绝对路径

php - 将 PHP 日期时间字符串转换为 MySQL 日期时间

mysql - 使用 mysql 工作台访问 phpmyadmin extern (10061)

php - Laravel 4 - 表单提交以更新 MySQL 表

c# - 使用c#显示以BLOB格式存储在MySql数据库中的图像

php - 使用php + MySQLi取数据时使用while可以吗?

PHP和MYSQL根据日期查找记录

php - 同步播放两个嵌入的 YouTube 视频

mysql - 在 MySQL 中排序非英文字母