【问题标题】:Laravel equivalent of sql datetime castingLaravel 相当于 sql 日期时间转换
【发布时间】:2021-08-19 20:17:36
【问题描述】:

我有一个包含ddatetime_start 列的表,我想将它与今天进行比较。

在 SQL Server 中,我可以直接转换 ddate and timestart 来格式化我想要的日期并将其与 GETDATE() 进行比较。

就我而言,我如何将单独的(ddatetime_start)与今天进行比较?

已编辑
我想要的是像 '2020-06-01 11:23:00' 一样连接它,然后将它与今天进行比较

【问题讨论】:

  • 您想在 PHP 中比较它们还是使用查询构建器比较它们?
  • @shaedrich 查询生成器。抱歉忘了提这个。
  • 你的意思是ddate和time_start的类型都是TIMESTAMP?
  • @seopine 我编辑了问题
  • 在这种情况下,您可以像在普通 SQL 中那样做。根据您的逻辑,您可能希望使用 whereRaw()

标签: php mysql sql laravel laravel-query-builder


【解决方案1】:

whereRaw() 的内容应该与您在纯 SQL 中所做的类似。如果没有,请随意自定义。

DB::table('your_table')
    ->whereRaw('CONCAT(ddate, " ", time_start) = GETDATE()')

【讨论】:

  • 如果我可以直接连接列,这正是我所关心的。谢谢,伙计。
  • 最后一件事 :),我如何将 AM/PM 格式的 time_start 转换为 24 小时格式。通常会使用 date('H:i:s', strtotime(time_start),但它会给我错误。
  • 那是因为您使用的是 SQL 而不是 PHP。似乎 MySQL 无法真正解析 12 小时格式。不能以 24 小时格式存储时间并仅以 12 小时格式输出吗?我敢打赌,这会让事情变得容易得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-26
  • 2017-06-27
  • 1970-01-01
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 2013-12-07
相关资源
最近更新 更多