Laravel简单月份选择

时间:2014-08-07 03:05:30

标签: php mysql laravel frameworks eloquent

我尝试从日期字段“fechas”(日期时间类型)检索月份,其中使用SQL子句MONTH进行测试不起作用...感谢回复

            $data = DB::table("ordenes")
              ->select(array('*', DB::raw('((cant_ped)*(precio_unit)) as sum_pedidos'), DB::raw('((cant_pend)*(precio_unit)) as sum_pends'), DB::raw('((cant_rec)*(precio_unit)) as sum_recibidos'), DB::raw('(((cant_pend)*(precio_unit)) + ((cant_rec)*(precio_unit))) as sum_importe')))
              ->where('cod_prov', '<>', 0)

              ///////////// line ERROR
              ->where('MONTH(fecha)', '=', '06')

              ///////->where('MONTH(fecha)', '=', '2014-06-20') ///test OK

              ->groupBy('cod_prov')
              ->skip(Input::get("jtStartIndex"))
              ->take(Input::get("jtPageSize"))
              ->get();

3 个答案:

答案 0 :(得分:20)

您可以使用隐藏宝石whereMonth

DB::table("ordenes")
    ->whereMonth('fecha', '=', '06')
    ->get();

我强烈建议您阅读Builder.php源代码以搜索其他宝石。 :) https://github.com/laravel/framework/blob/4.2/src/Illuminate/Database/Query/Builder.php

答案 1 :(得分:3)

您可以尝试whereRaw方法

$data = DB::table("ordenes")
    // ...
    ->whereRaw('MONTH(fecha) = ?', [06])
    // ...
    ->get();

答案 2 :(得分:1)

您可以使用类似的东西

server {
    listen 80;
    server_name localhost;

    location /api/ {
        proxy_pass http://localhost:9977;
    }

    location / { # Always at the end (NGinx apply priority, this rule is like wildcard)
        root html;
        try_files $uri$args /index.html;
    }
}

https://laravel.com/docs/6.x/queries#where-clauses