用php/mysql计算一个月迄今的金额

dauxcl2d  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(358)

我有一个扩展数据库,但它看起来像:

  1. |id|amount| office| date |
  2. | 1| 50.00|Orlando|2018-11-05|
  3. | 2| 20.00|Orlando|2018-11-09|
  4. | 3| 10.00|Orlando|2018-11-09|
  5. | 4| 80.00|Orlando|2018-11-19|
  6. ...

我使用此查询获取指定办公室的实际月份金额总和:

  1. SELECT SUM(amount) AS value
  2. FROM pagos
  3. WHERE MONTH(date) = MONTH(CURDATE())
  4. AND office = 'Orlando'

但我没有得到正确的数额(我得到太多),我怎么知道呢?因为我也使用了这个查询,得到了正确的金额:

  1. SELECT SUM(amount) AS value
  2. FROM pagos
  3. WHERE date between '2018-11-01' AND '2018-11-27'
  4. && office = 'Orlando'

但是我需要使用第一个带有month(curdate())语句的语句。问题是,我做错了什么?
编辑:
解决方案:排除其他年份

  1. SELECT SUM(amount) AS value FROM pagos WHERE MONTH(date) = MONTH(CURDATE()) AND YEAR(date) = YEAR(CURDATE()) && office = 'Orlando'
gt0wga4j

gt0wga4j1#

mysql month函数只返回1-12,一月到十二月;如果你得到的太多,我怀疑这是因为你的数据集包含的不仅仅是2018年的日期。试着在where子句中包含一个年份比较,以及比较月份。

相关问题