【问题标题】:How to update time to NOW()?如何将时间更新为 NOW()?
【发布时间】:2016-10-02 20:44:24
【问题描述】:

如果 date 字段已过时,我想将其设置为 NOW()。这是我尝试运行但没有成功的查询:

Quiz::('date', '<', DB::raw('NOW()'))->update(['date' => DB::raw('NOW()')])

我该如何解决?

附言
如果可能的话,我不想处理Carbon,以避免服务器/数据库时差问题。

【问题讨论】:

  • 首先,你的 update() 语法好像不对,应该是:->update(['date' => DB::raw('NOW()')])
  • @DenisMysenko 已修复

标签: laravel laravel-5 eloquent laravel-5.2 laravel-query-builder


【解决方案1】:

尝试类似:

DB::table('quizzes')->where(DB::raw('date < NOW()'))->update(['date' => DB::raw('NOW()')]);

【讨论】:

  • where 子句似乎不正确,无法正常工作
  • 我注意到在调试查询时,is null 被附加到生成的 MySQL 查询中:. . . where date &lt; NOW() is null。为什么会这样?
  • 根据stackoverflow.com/questions/37611461/…where子句应替换为whereRaw,以避免is null问题
猜你喜欢
  • 2021-08-17
  • 2015-04-09
  • 2021-02-13
  • 1970-01-01
  • 2012-02-28
  • 2022-01-17
  • 2012-06-30
  • 2015-09-18
  • 1970-01-01
相关资源
最近更新 更多