2017-02-26 1 views
0

Ich habe eine funktionierende Abfrage an Ort und Stelle, aber ich möchte eine Klausel hinzufügen, um nur Datensätze anzuzeigen, die eine 'tbdlomains.nextduedate' weiter als 30 Tage entfernt haben.Laravel where Klausel 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() 

Was ich versucht:

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

aber das bedeutet nicht Schlepptau Arbeit in Laravel

Dank scheinen!

Antwort

1

Sie können dies leicht mit Carbon tun (die mit Laravel kommt).

Kohlenstoff hat eine addDays() Funktion, so können wir das wie folgt verwenden 30 Tagen ab dem aktuellen Tag hinzuzufügen:

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

Sie können es auf Ihre where Klausel wie folgt verwenden:

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

Klappt wunderbar. Vielen Dank!! – mitch2k