我有两个名为Price和Date的列,因此我想求出价格的总和,其中月份是01:

 price |   date
-------------------
200    | 01-01-2022
100    | 09-01-2022
400    | 01-03-2022
120    | 01-06-2022

以下是我的代码:

$total = Products::whereMonth('date', '=', 1)->sum('price');

但它没有显示任何数据,它只显示0

推荐答案

Because you cannot change the format of things, we have to selectRaw from the database:

  • 步骤1)是使用您的格式"%d-%m-%Y"解析日期.您可以从:https://www.w3schools.com/sql/func_mysql_str_to_date.asp阅读有关str_to_date函数的更多信息

  • 步骤2)我们从解析后的日期中获取月份

  • 步骤3)我们将解析的日期指定为"MODIFIED_DATE"或其他名称 我想把它改名为.

  • 步骤4)我们根据结果进行 Select 和求和.

This should be the final result:

$products = Products::selectRaw('*, month(str_to_date(date, "%d-%m-%Y")) as modified_date')->get();

$total = $products->where('modified_date', 1)->sum('price'));

Result:

300

现在,您可以在保留型号和所有关系加载日期的同时按months 1 -> 12进行搜索,以供其他用途.

Php相关问答推荐

用户信息更新期间Laravel邮箱验证问题

SQLSTATE [42S02]:找不到基表或视图:1146 Table eshop. sessions不存在'''

根据特定运输类别增加WooCommerce购物车总重量

自定义WooCommerce帐户下载列表

Php解压缩deflate64

用于计算付款费用的WooCommerce管理编辑产品中的自定义复选框

如何在Livewire 3 Form类中做依赖注入?

如果为布尔值,则 for each 循环重新启动

从两个日期创建日期范围,然后为范围中的每个日期复制子数组

如何将LARAVEL模块路径和项目路径合并,因为当我使用模块路径时,它们会覆盖项目路径

向WooCommerce管理订单总额添加自定义总额行

在WooCommerce存档页面中显示可变产品的库存变化属性

如何在 apache Laragon - laravel 10 中允许方法 DELETE?

WordPress 分页无法正常工作

在 php 中生成 MAC ISO/IEC 9797-1

如何设置Mailersend PHP API 模板变量?

如何从此字符串创建 Carbon 对象:2022-06-21T05:52:46.648533678Z?

在 laravel 中更新表单时如何在 Select 选项中保留旧值?

NetBeans 不显示中文内容

服务器发送的事件:EventSource 抛出 MIME 错误