【问题标题】:how can i get today's date in query builder?如何在查询生成器中获取今天的日期?
【发布时间】:2017-08-20 22:20:18
【问题描述】:

我正在使用 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) 但我不知道如何将其转换为查询生成器。谢谢你的帮助。

【问题讨论】:

  • 我很抱歉这个误导性的标题。我忘记在发布之前更改它。真的很抱歉。

标签: laravel laravel-5.2


【解决方案1】:

使用Carbon:

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

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

use Carbon\Carbon;

【讨论】:

  • 插入使用 Carbon\Carbon;进入控制器?
【解决方案2】:

您不需要多个 update()。而且你没有加入多个表,所以你不需要一直指定表名。

->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'
])

【讨论】:

    【解决方案3】:

    如果您绝对需要使用 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(),
        ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2017-04-28
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多