【问题标题】:Select query for getting the year from db (date)选择从数据库(日期)获取年份的查询
【发布时间】:2023-01-15 00:40:57
【问题描述】:

我想从我的 ProjectHistory 表中选择特定的行,例如我想选择数据(翻译 = 日期)包含 2022 年的“费用”。 我这样做了,但我不知道如何指定年份是否包含 2022 年或 2023 年或任何其他年份。

控制器

$cheltuieli = DB::table('IstoricProiecte')->select('suma')->where('action_type', '=', 'cheltuiala')->get()->sum('suma');
return view('statistici', compact('cheltuieli'));

看法

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['bar']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['An', 'Incasari', 'Cheltuieli', 'Plati'],
['2022', 1000, {{ $cheltuieli }}, 200],
['2023', 0,{{ $cheltuieli }},0],
['2024', 0,0,0],
['2025', 0,0,0]
]);

var options = {
chart: {
title: 'Performanta Companiei',
subtitle: 'Sales, Expenses, and Profit: 2022-2025',
}
};

var chart = new google.charts.Bar(document.getElementById('columnchart_material'));
chart.draw(data, google.charts.Bar.convertOptions(options));
}
</script>
<div id="columnchart_material" style="width: 800px; height: 500px;"></div>

例如,我想要 2023 年的所有费用。如何检查日期是否包含 2023 并选择? enter image description here

控制器:

public function tranzactii($an)
    {
        $cheltuieli23 = DB::table('IstoricProiecte')->select('suma')->where('action_type', '=', 'cheltuiala')->whereYear('data', '=', $an)->get()->sum('suma') * -1;
        $plati23 = DB::table('IstoricProiecte')->select('suma')->where('action_type', '=', 'plata')->whereYear('data', '=', $an)->get()->sum('suma');
        $incasari23 = DB::table('IstoricProiecte')->select('suma')->where('action_type', '=', 'cheltuiala')->whereYear('data', '=', $an)->get()->sum('suma') * -1;
    }

    public function viewStatistici()
    {
        tranzactii('2023');
        return view('statistici', compact('cheltuieli23', 'plati23'));
    }

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    尝试这个

    $expenses = DB::table('IstoricProiecte')
                    ->select('suma')
                    ->where('action_type', '=', 'expense')
                    ->whereYear('data', '=', 2023)
                    ->get()
                    ->sum('suma');
    

    虽然,您应该直接使用该模型,以便您实际获得所需的对象(DB::table 返回 stdClass 对象,使用该模型将为您提供该模型的对象):

    $expenses = IstoricProiecte::query()
                    ->select('suma')
                    ->where('action_type', '=', 'expense')
                    ->whereYear('data', '=', 2023)
                    ->get()
                    ->sum('suma');
    

    【讨论】:

    • 太感谢了!
    • 将答案标记为已接受,然后为我点赞 <3
    • 你知道我如何在 laravel 中调用另一个函数内的函数吗?你能再检查一下我的初始帖子吗我更新了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2012-11-07
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多