在 laravel eloquent 中使用 time_to_sec()
Using time_to_sec() in laravel eloquent
如何在 laravel eloquent 中使用 time_to_sec()
?
这是我在 sql 中的查询:
select time_to_sec('00:02:00')
有什么方法可以在 laravel eloquent 中实现吗?
我在列 charge
中的值为 750
,这意味着一小时 750 美元
如果我给 00:30:00 它应该将值转换为秒并在列中执行相同的操作。
结果应该是375
表示半小时收费375
mysql 备用是 select time_to_sec("00:30:00") / 3600
我只是想知道如何以 laravel eloquent 的方式做到这一点。
如果您想要 运行 这样的简单查询,可以使用 DB::select()
。 DB::select()
将 return 包含查询结果的 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);
很可能您正在寻找的是 "raw" 方法。参见:http://laravel.com/docs/4.2/queries#raw-expressions
如何在 laravel eloquent 中使用 time_to_sec()
?
这是我在 sql 中的查询:
select time_to_sec('00:02:00')
有什么方法可以在 laravel eloquent 中实现吗?
我在列 charge
中的值为 750
,这意味着一小时 750 美元
如果我给 00:30:00 它应该将值转换为秒并在列中执行相同的操作。
结果应该是375
表示半小时收费375
mysql 备用是 select time_to_sec("00:30:00") / 3600
我只是想知道如何以 laravel eloquent 的方式做到这一点。
如果您想要 运行 这样的简单查询,可以使用 DB::select()
。 DB::select()
将 return 包含查询结果的 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);
很可能您正在寻找的是 "raw" 方法。参见:http://laravel.com/docs/4.2/queries#raw-expressions