Mysql 使用查询生成器仅从日期时间提取时间
如何使用laravel查询生成器从该Mysql 使用查询生成器仅从日期时间提取时间,mysql,laravel,laravel-5,laravel-query-builder,Mysql,Laravel,Laravel 5,Laravel Query Builder,如何使用laravel查询生成器从该交易中提取或仅使用时间。交易日期:“2018-08-14 06:48:24” 输出应为: 06:48:24 我的职能: public function boot() { Schema::defaultStringLength(191); view()->composer('layouts.member', function ($view) { $user = optional(Auth::user())->i
交易中提取或仅使用时间。交易日期
:“2018-08-14 06:48:24”
输出应为:
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);
});
}
公共函数启动()
{
Schema::defaultStringLength(191);
view()->composer('layouts.member',函数($view){
$user=可选(Auth::user())->id;
$value=DB::表('exchanges')
->leftJoin('trades','exchanges.id','=','trades.exchange_id'))
->其中('trades.user_id',$user)
->whereRaw(“?不在开始时间和结束时间之间,'trades.tradedate')
或者->where('trade_date','>=','exchanges.close_time')->where('trade_date','p>您可以使用Carbon进行解析并从日期获取时间
要从模型中获取时间,可以向模型中添加方法:
公共函数getTime()
{
return\Carbon\Carbon::parse($this->my_date)->toTimeString();
}
或者,您可以为您的模型添加访问器(getter fro属性):
公共函数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);
});
}
请将您迄今为止尝试过的代码与大家分享,以获得更好的答案。您也可以通过这种方式尝试-date('H:i:s')我已经为你分享了我的代码@ShreerajI think i can can pass carbon..让我在这里发布我的查询我已经发布了我的相关函数,trades.tradedate
需要提取时间。这是个好主意,但它给我的结果只是trade\u date
。@Ahsani认为你可以使用时间(trades.tradedate)覆盖它作为tradedate…但不知何故,我并不认为这是一个好的做法,或者你指的是它只是给你这个列,是的,默认情况下它会选择*,但是如果你指定一个选择,你必须指定每一列,或者使用->selectRaw('*'),你得到的结果是trade\u date
?