2017-07-10 1 views
1

ich einen Tischwie aktuelle Datum überprüfen ist, zwischen zwei Terminen in Laravel 5.4

+---------------------+----------- 
    | id | start_date  | End_date | 
    +---------------------+-----------+ 
    | 1 | 2017-07-07 | 2017-07-31| 
    | 2 | 2017-08-01 | 2017-08-31| 
    | 3 | 2017-09-01 | 2017-09-10| 
    | 
    +------+--------------+-----------+ 

Und ich möchte Sie die Daten zwischen zwei dates.I haben eine Abfrage

SELECT * FROM Financial_Year WHERE CURDATE() between `start_date` and `End_date` 

Ich will, muss konvertieren, diese Abfrage Laravel so habe ich versucht, diese

$dt = Carbon::now(); 
$getmonths= DB::table('Financial_Year') 
        ->whereBetween($dt, ['start_date', 'End_date'])->get(); 

Aber ich output.Any Hilfe nicht würde erhalten geschätzt.

+0

'End_date' sollte in Ihrem Fall sein' end_date' wahrscheinlich? ist es Tippfehler oder richtig? –

+0

@SagarGautam ist es wirklich ein Fehler .. ?? erklären!!! –

+0

Sie müssen ein 'where (\ DB :: raw (" $ dt BETWEEN start_data und end_date ")) machen' der Query Builder nimmt normalerweise an, dass der erste Parameter ein Spaltenname ist und die anderen Werte sind, aber hier ist es umgekehrt Wenn Sie eine rohe Datenbankabfrage verwenden, können Sie auch 'CURDATE()' anstelle von Kohlenstoff verwenden. – apokryfos

Antwort

2

Hier können Sie Laravel whereRaw() verwenden, um dies zu erreichen.

Genau wie diese

$dt = Carbon::now(); 
$getmonths= DB::table('Financial_Year') 
    ->whereRaw('"'.$dt.'" between `start_date` and `End_date`') 
    ->get(); 
+0

Können Sie erklären, warum die rohe Abfrage funktioniert und die Laravel-Abfrage nicht funktioniert? –

+3

'where between' funktioniert nur mit Zahlen und nicht mit Daten – lewis4u

+0

@Bibhudatta Sahoo ... vielen Dank ... seine Arbeit –

1

können Sie Kohlenstoff verwenden native Funktion dafür:

http://carbon.nesbot.com/docs/

$first = Carbon::create(2012, 9, 5, 1); 
$second = Carbon::create(2012, 9, 5, 5); 
var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second)); // bool(true) 
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second)); // bool(true) 
Verwandte Themen