Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel中使用time_to_sec()雄辩_Php_Mysql_Sql_Laravel_Time - Fatal编程技术网

Php 在laravel中使用time_to_sec()雄辩

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雄辩的方式

如何在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雄辩的方式做到这一点。

如果您想运行这样的简单查询,可以使用
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进行计算?我会在几秒钟内更新得更清楚我不需要使用查询生成器,至少有一种方法可以使用模型来实现它吗?但是,我需要雄辩地做到这一点,可以在模型中实现吗?