在laravel eloquent中使用time_to_sec()

时间:2015-01-31 09:21:50

标签: php mysql sql laravel time

如何在laravel雄辩中使用time_to_sec()

这是我在sql中的查询:

select time_to_sec('00:02:00')

有没有办法在laravel eloquent中实现这个?

我的颜色charge中的值为750,这意味着一小时750美元

如果我给00:30:00它应该将值转换为秒并在coloumn中执行相同操作。

结果应为375

这意味着半小时的电荷是375

mysql alternate是select time_to_sec("00:30:00") / 3600

我只是想以laravel雄辩的方式知道如何做到这一点。

2 个答案:

答案 0 :(得分:1)

如果您想要运行这样的简单查询,可以使用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;

修改

如果您尝试将此功能合并到Eloquent查询中,则可以使用selectRaw()方法:

$time = '00:30:00';
$model = OutSideCity::selectRaw("*, ((time_to_sec('".$time."') / 3600) * charge) as calculated_charge")->first();
print_r($model->calculated_charge);

答案 1 :(得分:0)

你最想要的是“原始”方法。请参阅:http://laravel.com/docs/4.2/queries#raw-expressions