使用查询生成器仅从 dateTime 中提取时间
extract only time from dateTime using query builder
如何从 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);
});
}
您可以使用 Carbon 进行解析并从日期中获取时间。
要从模型中获取时间,您可以向模型添加方法:
public function getTime ()
{
return \Carbon\Carbon::parse($this->my_date)->toTimeString();
}
或者您可以为您的模型添加访问器(getter 来回属性):
public function getMyDateAttribute($date)
{
return \Carbon\Carbon::parse($date)->toTimeString();
}
我不确定,但你可以这样试试:
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);
});
}
如何从 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);
});
}
您可以使用 Carbon 进行解析并从日期中获取时间。
要从模型中获取时间,您可以向模型添加方法:
public function getTime ()
{
return \Carbon\Carbon::parse($this->my_date)->toTimeString();
}
或者您可以为您的模型添加访问器(getter 来回属性):
public function getMyDateAttribute($date)
{
return \Carbon\Carbon::parse($date)->toTimeString();
}
我不确定,但你可以这样试试:
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);
});
}