使用查询生成器仅从datetime提取时间

tpgth1q7  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(341)

如何从中提取或仅使用时间 trades.tradedate : "2018-08-14 06:48:24" 使用laravel查询生成器。
输出应为: 06:48:24 我的职能:

public function boot()
{
    Schema::defaultStringLength(191);

    view()->composer('layouts.member', function ($view) {

        $user = optional(Auth::user())->id;
        $value = DB::table('exchanges')
            ->leftJoin('trades', 'exchanges.id', '=', 'trades.exchange_id')
            ->where('trades.user_id', $user)
            ->whereRaw("? NOT BETWEEN start_time AND close_time", 'trades.tradedate')

  OR   ->where('trade_date','>=', 'exchanges.close_time')->where('trade_date', '<=', 'exchanges.start_time')

            ->get();
        $view->with('value', $value);
    });

}
kgsdhlau

kgsdhlau1#

我不确定,但你可以这样做:

public function boot()
{
    Schema::defaultStringLength(191);

    view()->composer('layouts.member', function ($view) {

        $user = optional(Auth::user())->id;
        $value = DB::table('exchanges')
            ->leftJoin('trades', 'exchanges.id', '=', 'trades.exchange_id')
            ->where('trades.user_id', $user)
            ->select(DB::raw('TIME(trades.tradedate) AS trade_date'))
            ->whereRaw("? NOT BETWEEN start_time AND close_time", 'trade_date')

            ->get();
        $view->with('value', $value);
    });

}
tzcvj98z

tzcvj98z2#

您可以使用carbon进行解析并从date获取时间。
为了从模型中获取时间,可以向模型中添加方法:

public function getTime ()
{
    return \Carbon\Carbon::parse($this->my_date)->toTimeString();
}

或者可以为模型添加访问器(getter fro属性):

public function getMyDateAttribute($date)
{
    return \Carbon\Carbon::parse($date)->toTimeString();
}

更多关于访问者,碳文档。

相关问题