我如何使用laravel获得今天,过去7天和过去30天的利润

Shasika Madhushan:

在此处输入图片说明我有一个利润表在我的数据库,当我按日期从数据库中获取我需要的数据进行筛选利润(为todaylast 7 dayslast 30 days)。

在我的控制器中,我尝试过

$todayProfit = Profit::whereDate('created_at',today())->get();
return response()->json($todayProfit);

但它只提供24小时,但我今天需要获利。

当我使用检索过去30天的数据时,

$lastMonthProfit = Profit::whereDate('created_at',today()->subDay(30))->get();
return response()->json($lastMonthProfit );

它对我不起作用,我该如何解决

Ersoy:

一次计算全部的查询可能是;

SELECT 'Today' as date, sum(profit) as total FROM profits 
WHERE created_at > DATE_ADD(CURDATE(), INTERVAL -1 DAY)
UNION
SELECT 'Last 7 days', sum(profit) FROM profits 
WHERE created_at > DATE_ADD(CURDATE(), INTERVAL -7 DAY)
UNION
SELECT 'Last 30 days', sum(profit) FROM profits 
WHERE created_at > DATE_ADD(CURDATE(), INTERVAL -30 DAY);

查询生成器版本;

return Profit::where('created_at', '>', DB::raw('DATE_ADD(CURDATE(), INTERVAL -1 DAY)'))
        ->select([DB::raw('"Today" as date'), DB::raw('sum(profit) as total')])
        ->union(
            Profit::where('created_at', '>', DB::raw('DATE_ADD(CURDATE(), INTERVAL -7 DAY)'))
                ->select([DB::raw('"Last 7 days"'), DB::raw('sum(profit) as total')])
        )
        ->union(
            Profit::where('created_at', '>', DB::raw('DATE_ADD(CURDATE(), INTERVAL -30 DAY)'))
                ->select([DB::raw('"Last 30 days"'), DB::raw('sum(profit) as total')])
        )
        ->get();

它打印出类似这些的东西;

[
    {
        "date": "Today",
        "total": "50"
    },
    {
        "date": "Last 7 days",
        "total": "100"
    },
    {
        "date": "Last 30 days",
        "total": "310"
    }
]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Django 中显示今天、昨天和过去 7 天的数据?

获得从今天过去7天记录

PHP / MySql比较过去7天和最近7天之间的数据

如何从 SQLite 存储和检索过去 30 天的数据?

获得过去 7 天的用户积分

MySQL:如何创建返回过去 30 天和 15 天的行的查询?

在MySQL中获得1天,7天和30天的计数

使用 moment 获取过去 3、7、30 和 90 天的总金额

如何获取过去30天的数据?

获取 Laravel 中过去 7 天的分组和计数条目

PostgreSQL 结合计数、过去 7 天计数和过去 30 天计数 按天数分组

如何使用 Moment.js 从现在开始获得过去 7 天?

我想将过去 30 天的销售和 30 到 90 天的销售添加更多权重 (1.5) 到过去 30 天的销售

如何使用Parse JS SDK查询过去7天的对象?

提取过去 30 天的记录

每辆车相对有Count(For Day),过去10天和最近20天

如何使用间隔比较今天和30天以上的mysql日期字段

使用Twurl计算过去30天的推文数量

使用 SSIS 从 MARA 中选择过去 30 天的行

询问从当前日期到提前 7 天和过去 7 天的数据

如何使用Python准确计算过去30天(精确到分钟)?

如何使用值为 0 的 MySQL 获取过去 30 天的结果?

如何使用sql中的时间戳列从表中获取过去30天的记录

Pouchdb-find 过去 30 天的文档

在 BigQuery 上运行过去 30 天的总和

过去30天的口才选择记录表

R:汇总过去30天的数据

过去 30 天的移动平均线

获取过去 7 天的开始和结束时间