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

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

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

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

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

SELECT SUM(amount) AS value 
FROM pagos 
WHERE MONTH(date) = MONTH(CURDATE()) 
AND office = 'Orlando'

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

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

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

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

2cmtqfgy1#

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

相关问题