好的,所以我正在尝试查询今天不是created_at
的用户,我遇到了一些麻烦。我尝试过的所有东西都仍然被选中。以下是我尝试过的一些内容(没有成功):
$users = User::where('created_at', '!=', date('Y-m-d H:i:s'))->get()
$users = User::where('created_at', '!=', new DateTime())->get()
$users = User::where('created_at', '!=', date('Y-m-d'))->get()
$users = User::where('created_at', '!=', new DateTime('today'))->get()
我还尝试使用<>
运算符代替!=
。
我怀疑问题在于用户不是“第二次”创建的,因此它们不相等并且通过。我该如何解决这个问题?
旁注:我正在使用SQLite进行开发,但将在实时网站上使用Postgres,所以我想要兼容两者。
答案 0 :(得分:8)
试试这个:
<?php
use \Carbon\Carbon;
...
$start = (new Carbon('now'))->hour(0)->minute(0)->second(0);
$end = (new Carbon('now'))->hour(23)->minute(59)->second(59);
$trans = User::whereNotBetween('created_at', [$start , $end])->get();