【问题标题】:Laravel 5 search records 30min and older for todayLaravel 5 搜索记录 30 分钟及以上今天
【发布时间】:2017-03-04 00:19:15
【问题描述】:

我正在尝试获取所有 30 分钟前的记录,并且今天包含一个名为 smsed value = to 0 的字段。

我想要做的是获取我数据库中今天日期且超过 30 分钟的所有记录。

$data = DB::table('applicant')->whereRaw('AppDate < (NOW() - INTERVAL 30 MINUTE)')->where('smsed','=',0)->limit(5000)->get();

上面所做的是获取数据库中的所有记录,而不仅仅是今天。

【问题讨论】:

  • AppDate 的列类型是什么?
  • @RossWilson ,它的日期时间

标签: laravel-5


【解决方案1】:

这是因为你只要求它提供超过 30 分钟的记录,并且不包括任何限制它到今天的记录。

你可以使用类似whereBetween:

$data = DB::table('applicant')
    ->whereBetween('AppDate', [Carbon\Carbon::now()->startOfDay(), Carbon\Carbon::now()->subMinute(30)])
    ->where('smsed', '=', 0)
    ->limit(5000)
    ->get();

或者,如果您只想保留 sql 函数,您可以执行以下操作:

$data = DB::table('applicant')
    ->whereRaw('AppDate < (NOW() - INTERVAL 30 MINUTE)')
    ->whereRaw('DATE(AppDate) = CURDATE()')
    ->where('smsed','=',0)
    ->limit(5000)
    ->get();

希望这会有所帮助!

【讨论】:

  • 谢谢伙计,我不得不稍作改动,但我明白了
猜你喜欢
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 2011-01-03
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多