Php 在laravel中使用time_to_sec()雄辩
如何在laravel eloquent中使用Php 在laravel中使用time_to_sec()雄辩,php,mysql,sql,laravel,time,Php,Mysql,Sql,Laravel,Time,如何在laravel eloquent中使用时间到秒() 以下是我在sql中的查询: select time_to_sec('00:02:00') 有没有办法在laravel Elotent中实现这一点 我在冒号charge中的值为750,这意味着一小时750美元 如果我给出00:30:00,它应该将值转换为秒,并在冒号中执行相同的操作 结果应该是375 这意味着半小时的收费是375 mysql备选方案是选择时间到秒(“00:30:00”)/3600 我只是想知道如何用laravel雄辩的方式
时间到秒()
以下是我在sql中的查询:
select time_to_sec('00:02:00')
有没有办法在laravel Elotent中实现这一点
我在冒号charge
中的值为750
,这意味着一小时750美元
如果我给出00:30:00,它应该将值转换为秒,并在冒号中执行相同的操作
结果应该是375
这意味着半小时的收费是375
mysql备选方案是选择时间到秒(“00:30:00”)/3600
我只是想知道如何用laravel雄辩的方式做到这一点。如果您想运行这样的简单查询,可以使用
DB::select()
DB::select()
将返回包含查询结果的stdClass对象数组
$result = DB::select("select time_to_sec('00:30:00') as seconds");
// print_r($result);
// Array
// (
// [0] => stdClass Object
// (
// [seconds] => 1800
// )
// )
$time = reset($result)->seconds;
编辑
如果您试图将其合并到雄辩的查询中,可以使用selectRaw()
方法:
$time = '00:30:00';
$model = OutSideCity::selectRaw("*, ((time_to_sec('".$time."') / 3600) * charge) as calculated_charge")->first();
print_r($model->calculated_charge);
最有可能的是你正在寻找的是“原始”方法。请看:你能给我们提供更多的细节吗?我已经更新了我的问题,请检查一下
00:30:00
从哪里来?您的查询是否更长,或者您只是在使用mysql进行计算?我会在几秒钟内更新得更清楚我不需要使用查询生成器,至少有一种方法可以使用模型来实现它吗?但是,我需要雄辩地做到这一点,可以在模型中实现吗?