laravel 原始查询日期比较

laravel raw query date comparisons

我有一个字符串列 ddate = ('2020-06-02')time_start = ('4:25 PM'),我想将其与 date('Y-m-d H:i A').

进行比较

date('Y-m-d H:i A') = 2021-06-02 01:14 AM...
我想要的是显示 ddate+time_start > date('Y-m-d H:I A')

的所有行

我的 where 子句是:

->whereRaw('CONCAT(event_date, " ", time_start) > DATE("Y-m-d H:i A")')

但结果仍然显示'2021-06-02 01:14 AM'以下的所有日期

我也试过了

->whereRaw('DATE("Y-m-d H:i", CONCAT(event_date, " ", time_start)) > DATE("Y-m-d H:i")')

但是我遇到了语法错误。

我的第二个查询是否已经正确但语法错误?

如果没有,我该如何实现我想要的?

如果您使用 php 传递当前日期,您必须这样做:

->whereRaw('CONCAT(event_date, " ", time_start) >'. date("Y-m-d H:i A"))

如果您希望 mysql 处理当前日期,请使用 now()

->whereRaw('CONCAT(event_date, " ", time_start) > now()')

MySQL DATE() 函数用于从日期时间中提取日期部分。请改用 PHP 日期函数,或者您可以使用 Carbon。

->whereRaw("CONCAT(event_date, ' ', time_start) > " . date('Y-m-d g:i A'))