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

时间:2016-05-12 07:53:50

标签: laravel laravel-5

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

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

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

1 个答案:

答案 0 :(得分:2)

将您的查询更改为此

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

如果您将UpdateDate date作为数据类型

如果您有timestampdatetime数据类型,请更改为此

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();