php - 如何在 Laravel join 中使用 'DATEADD' 函数?

标签 php sql join laravel-4 laravel-query-builder

我有一个 Laravel 4 连接,如下所示:

return DB::table(Location::getTableName() . ' as l')->where('l.company_id', $companyId)
        ->join(User::getTableName() . ' as u', 'u.location_id', '=', 'l.id')->whereIn('l.id', $locationsId)
        ->join(UserTimeline::getTableName() . ' as ut', 'ut.user_id', '=', 'u.id')
        ->join(Status::getTableName() . ' as s', 's.id', '=', 'ut.status_id')
        ->select(
            'l.name as location_name',
            'u.first_name as user_first_name',
            'u.last_name as user_last_name',
            'u.email as user_email',
            'ut.started_at as timeline_started_at',
            'ut.finished_at as timeline_finished_at',
            's.id as status_id',
            's.label as status_label'
        )
        ->orderBy('ut.id', 'asc')
        ->skip($from)
        ->limit($limit)
        ->get();

我必须检测用户的时区并计算与 GMT 的差异作为一个数字,对于巴基斯坦来说可能是 +5,对于印度来说可能是 +5.5。 现在我的问题是我正在将这个连接的数据导出到 CSV 文件中。我必须在“timeline_started_at”和“timeline_finished_at”中添加小时数。我搜索了一下,发现SQL的“DATEADD”方法可以增加或减少小时。

真正的问题是我不知道在上面的连接中我应该在我的 Laravel 连接中使用“DATEADD”函数。

有人可以在这方面帮助我吗?????????

最佳答案

您可以使用DB::raw()将 sql 函数添加到您的查询中。

例如:

$test = DB::table('test')->where(DB::raw('DATE_ADD(created_at, 5)'), '<', $date)->get();

关于php - 如何在 Laravel join 中使用 'DATEADD' 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34067086/

相关文章:

MySQL |更新查询以填充子项

MySQL 在一次连接中从一个表中获取两行

php - 为 products.php 文件中的每个产品创建单独的 .php?id= 链接

php - 根据里面的菜单数量调整导航栏

mysql - 左连接不起作用

php - 如何使用 PHP 从 MySQL 数据库中插入和检索数组值?

php - 我如何才能正确格式化 XML 输出

php - 使用 CodeIgniter 从进程列表中删除查询

sql - 在 SQL 中遇到异常后如何继续运行我的程序?

mysql : using Join instead of subQuery