如何使用带有特定时间(小时,分钟)的whereBetween()选择数据库的数据?

时间:2019-01-12 13:34:32

标签: php laravel-5 eloquent

我试图选择存储在数据库中的全天销售,但是问题是工作日开始于6PM,结束于5AM。例如:星期五从下午6:00到星期六的5:00。

如何使用whereBetween()解决此问题?还是有其他解决方案?

下面的代码是工作日在同一天开始和结束的旧版本。

SalesController php

ue4editor.exe IsServer_IsClient.uproject -server -log
ue4editor.exe IsServer_IsClient.uproject -game 127.0.0.1

2 个答案:

答案 0 :(得分:1)

您可以使用whereTime()函数来过滤时间范围。

答案 1 :(得分:0)

按照上面的Rubys的建议,我找到了这个解决方案:

$sales_day = DB::table('sales')->where('active',1)
            ->whereBetween('created_at',[
                Carbon::today()->toDateString(),//first day
                Carbon::today()->addDays(1)->toDateString()//second day
            ])
            ->whereTime('created_at','>=','12:00:00')//12:00 as 23:59
            ->whereTime('created_at','<=','5:00:00')//00:00 as 05:00
            ->orderBy('id','desc')
            ->paginate(15);