Laravel where子句timediff

时间:2017-02-26 07:25:03

标签: laravel

我有一个有效的查询,但是我想添加一个子句,只显示30天后有'tbldomains.nextduedate'的记录。

Capsule::table('tblhosting')
    ->select('*','tbldomains.nextduedate as domainnextduedate' , 'tblhosting.nextduedate as hostingnextduedate','tbldomains.id as domainid' , 'tblhosting.id as hostingid')
        ->join('tblclients', 'tblhosting.userid', '=', 'tblclients.id')
        ->join('tbldomains', 'tblhosting.domain', '=', 'tbldomains.domain')         
        ->whereColumn('tblhosting.nextduedate', '!=', 'tbldomains.nextduedate')
        ->where('tbldomains.status', '=', 'Active')
        ->whereDate('tblhosting.termination_date', '=', '0000-00-00')
        ->where('tblhosting.nextduedate', '!=', '0000-00-00')   
        ->where('tblhosting.server', '!=', '0')             
        ->get()

我尝试了什么:

->where(Capsule::raw('DATEDIFF(CURDATE(),tbldomains.nextduedate)'),'>','30')

但这似乎并不适用于Laravel

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以很容易地使用Carbon(Laravel附带)。

Carbon具有addDays()功能,因此我们可以使用这样的功能从当天起添加30天:

where

您可以在->where('tbldomains.nextduedate', '>', \Carbon\Carbon::now()->addDays(30)) 子句中使用它,如下所示:

$scope