簡體   English   中英

如何在laravel原始查詢中使用案例

[英]How to use case in laravel raw query

我想根據laravel中的當前時間選擇行。 我有一個查詢,但它給出一個空的結果。

$price_calc = DB::table('trip_price_fixing')
            ->select(DB::raw("DATE(D.datumTijd),
     CASE WHEN TIME(D.datumTijd) BETWEEN '08:00:00' AND '14:00:00' THEN 1
          WHEN TIME(D.datumTijd) BETWEEN '14:00:00' AND '20:00:00' THEN 2
          WHEN TIME(D.datumTijd) BETWEEN '20:00:00' AND '24:00:00' THEN 3
     END "));

嘗試在select中分隔字段並命名secound聚合字段(在我的示例中是result ):

$price_calc = DB::table('trip_price_fixing')
        ->select(DB::raw("DATE(D.datumTijd) as date",
                 DB::raw("(CASE WHEN TIME(D.datumTijd) BETWEEN '08:00:00' AND '14:00:00' THEN 1
                          WHEN TIME(D.datumTijd) BETWEEN '14:00:00' AND '20:00:00' THEN 2
                          WHEN TIME(D.datumTijd) BETWEEN '20:00:00' AND '24:00:00' THEN 3
 END) as result"))->get();

我還認為你必須從查詢中刪除D.命名空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM