2011-10-26 11 views

risposta

12

attivo R ecords evapora automaticamente la tua query, quindi CURDATE() verrà passato come una stringa invece di usare la funzione mysql. Faresti meglio runing la query manualmente, qualcosa come

$query = $this->db->query("SELECT id,name FROM store WHERE dr = '1' AND end >= CURDATE()"); 

O se si desidera continuare a utilizzare AR, si potrebbe passare un FALSE come terzo parametro di $this->db->where per evitare automatica fuoriuscita dal CI:

$this->db->select('id,name') 
     ->where('dr','1') 
     ->where('end >=', 'CURDATE()', FALSE); 
$query = $this->db->get('store'); 
+0

deve essere ORA() per il tipo di indicatore di data e ora – user782104

+0

aggiungere 'FALSE' sarà la chiave. grazie @DamienPirsy –

3

Non faccio uso di record attivi in ​​CI, ma direi che CURDATE() è stato messo in una stringa nella query in modo che sta facendo WHERE end >= 'CURDATE()' al contrario di WHERE end >= CURDATE()

Se end è un campo timestamp provare ...

$this->db->where('end >=', time()); 

Se end è un campo datetime provare ...

$this->db->where('end >=', date("Y-m-d H:i:s")); 
Problemi correlati