php - 在 laravel eloquent 中使用 time_to_sec()

标签 php mysql sql laravel time

如何在 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() 将返回包含查询结果的 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);

关于php - 在 laravel eloquent 中使用 time_to_sec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28250064/

相关文章:

python - Django高级查询

php - 使用串行器填充的FosElasticaBundle不会索引所有字段

mysql - 如何使用 MySQL 在同一行中显示以前的数据?

sql - Excel VBA - 如何从 SQL 查询中填充数组

sql - 我应该如何设计我的 table

php - ERROR 2003 (HY000) 无法连接到本地主机上的 mysql 服务器

javascript - 无法在 PHP 内回显以 ajax 发送的 POST 参数

php - 将 2000 条自动完成字段记录添加到现有的 mysql 表中

JavaScript 与 PHP 对数组进行排序

php - 查询成员(member)姓名和分数