2017-02-26 97 views
0

我有一个正在工作的查询,但我想添加一个子句以仅在30天后显示具有'tbldomains.nextduedate'的记录。Laravel where子句timediff

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

你可以很容易地使用Carbon(这与Laravel一起)。

碳具有addDays()功能,所以我们可以使用像这样的30天从当天加:

\Carbon\Carbon::now()->addDays(30); 

你可以用它在你的where条款是这样的:

->where('tbldomains.nextduedate', '>', \Carbon\Carbon::now()->addDays(30)) 
+0

奇迹般有效。谢谢!! – mitch2k