2017-04-17 67 views
1

我正在從數據庫的表中調用數據。我添加了WHERE語句來過濾從今天直到14天前註冊的數據。以下是我的代碼示例:如何從今天的日期和之前獲取數據?

$data=DB::connection('oracle_mybase')->table('my_dndomain') 
      ->where('my_dndomain.domain_status','=',86) 
      ->where('my_dndomain.domain_reg_date','>=',DB::raw('to_date(sysdate)-14')) 
      ->where('my_dndomain.domain_extension','=','.com.my') 
      ->orwhere('my_dndomain.domain_extension','=','.org.my') 
      ->orwhere('my_dndomain.domain_extension','=','.net.my') 
      ->orwhere('my_dndomain.domain_extension','=','.my') 
      ->get(); 

但是我無法獲取數據。

+0

您應該採取雄辯模型。 – Hedam

回答

2

可以使用->whereBetween('my_dndomain.domain_reg_date',array($now->subDays(14), $now))

$now = Carbon\Carbon::now(); 
$twoweeksago = Carbon\Carbon::now()->subDay(14); 

$data=DB::connection('oracle_mybase')->table('my_dndomain') 
      ->where('my_dndomain.domain_status','=',86) 
      ->whereBetween('my_dndomain.domain_reg_date',array($twoweeksago, $now)) 
      ->where('my_dndomain.domain_extension','=','.com.my') 
      ->orwhere('my_dndomain.domain_extension','=','.org.my') 
      ->orwhere('my_dndomain.domain_extension','=','.net.my') 
      ->orwhere('my_dndomain.domain_extension','=','.my') 
      ->whereDate('field_name', '<', $now) 
      ->get(); 
+0

這是行不通的,因爲'$ now-> subDays(14)'會改變'$ now'對象。你需要再次調用'now()'來獲得今天的日期。 –

+0

哦,你是正確的編輯我的答案。 –

+0

是的,更新的代碼將起作用。 –

3

您可以使用whereBetween

whereBetween('date', array(Carbon::now()->subWeeks(2), Carbon::now())) 
+1

這是這裏唯一的工作解決方案。 –

相關問題