我怎样才能在查询构建器中获得今天的日期?

时间:2017-03-28 02:07:17

标签: laravel laravel-5.2

我正在使用laravel 5.3进行项目。我从oracle数据库调用数据。我怎样才能在查询构建器中获得今天的日期? 例如:

$data=DB::connect('myoracle_db')->table('tablename')
->where('tablename.domain_label','=',$domain_name)
->update('tablename.domain_status'=>87)
->update('tablename.last_updated_date'=>'todaydate')
->paginate(5);

如何在该查询中获取今天的日期?我知道oracle必须使用to_date(sysdate),但我不知道如何将其转换为查询构建器。谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

使用Carbon

->update('tablename.last_updated_date'=>Carbon::now());

您需要导入命名空间以使用Carbon

use Carbon\Carbon;

答案 1 :(得分:0)

您不需要多次更新()。此外,您不会连接多个表,因此您无需始终指定表名。

->where('domain_label', '=', $domain_name)
->update([
    'domain_status' => 87,
    'last_updated_date' => date('Y-m-d') //if your column is datetime use 'Y-m-d H:i:s'
])

答案 2 :(得分:0)

如果您绝对需要使用Oracle实例的日期,则可以将原始数据库表达式与DB::raw()一起使用

DB::connect('myoracle_db')
    ->table('tablename')
    ->where('domain_label', $domain_name)
    ->update([
        'domain_status' => 87,
        'last_updated_date' => DB::raw('to_date(sysdate)'),
    ]);

另一方面,您可以从客户端(php)代码传递日期:

DB::connect('myoracle_db')
    ->table('tablename')
    ->where('domain_label', $domain_name)
    ->update([
        'domain_status' => 87,
        'last_updated_date' => Carbon\Carbon::today(),
    ]);