Laravel - 默认空日期的数据库查询

Joh*_*les 0 laravel laravel-5

我试图获取一个表的一些记录,该表有一列“UpdateDate”,默认值为 NULL。我需要检查是否存在“UpdateDate”不是今天或“UpdateDate”为 NULL 的记录。我构建的查询如下:

DB::table('Users')
->where('id', '=', '10')
->where(function($query) {  
    $query->where('UpdateDate','<>',date("Y-m-d"))->orWhere('UpdateDate','is','NULL'); })
->exists()
Run Code Online (Sandbox Code Playgroud)

它没有按预期工作。我应该如何修改它?谢谢。

小智 5

将您的查询更改为此

DB::table('Users')
->where('id', '=', '10')
->where(function($query) {  
    $query->where('UpdateDate','<>', date("Y-m-d"))
    ->orWhereNull('UpdateDate'); 
})
->exists();
Run Code Online (Sandbox Code Playgroud)

如果您有UpdateDate dateas数据类型。

如果您有timestamp或datetime作为数据类型,则更改为此

DB::table('Users')
->where('id', '=', '10')
->where(function($query) {  
    $query->whereBetween('UpdateDate',[date("Y-m-d 00:00:00"), date("Y-m-d 23:59:59")])
    ->orWhereNull('UpdateDate'); 
})
->exists();
Run Code Online (Sandbox Code Playgroud)