php / Codeigniter – Como comparar apenas a data, excluindo o tempo

Eu tenho um campo na minha tabela db como creater_date como data e tendo valores armazenados na forma de 2013-09-13 02:12:44

Agora eu tenho que comparar o campo da tabela atual-data (sem tempo) com o creater_date .

Eu tentei este código abaixo, mas está mostrando erro:

  function check_existing_User_weightStatus($u_id) { $this->load->database(); $this->load->helper('date'); $today = date('Ym-d'); $array = array('creater_id' => $u_id,DATE('created_date') => $today); $this->db->where($array); $query = $this->db->get('user_weight'); if ($query->num_rows() > 0) { return true; } else { return false; } } 

Obtendo erro:

  A Database Error Occurred Error Number: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '13 Sep 2013 02:48:27 +0530Asia/Calcuttaam30Asia/Calcutta13_13am30Asia/Calcutta '' at line 4 SELECT * FROM (`user_weight`) WHERE `creater_id` = '3235' AND `2013-09-13T02:48:27+05:30Fri,` 13 Sep 2013 02:48:27 +0530Asia/Calcuttaam30Asia/Calcutta13_13am30Asia/Calcutta '2013-09-13' Filename: D:\xampp\htdocs\webapp\system\database\DB_driver.php Line Number: 330 

Eu não quero comparar com o tempo, eu só quero começar com a data de hoje. O campo created_date (por exemplo, 2013-09-13 02:12:44) está tendo datatypes de datetime com alguns valores de tempo. Mas eu quero comparar apenas com a data

O problema é que seu código gera uma syntax SQL com defeito, como mostra o erro.

Eu não sou um especialista com codeIgniter, mas aqui é como fazer uma consulta normal diretamente, provavelmente é o que você quer fazer:

 function check_existing_User_weightStatus($u_id) { $today = date('Ym-d'); $this->load->database(); $query = $this->db->query("SELECT * FROM `user_weight` WHERE `creater_id` = '$u_id' AND DATE(`created_date`) = '$today'"); if ($query->num_rows() > 0) { return true; } else { return false; } } 

O erro no seu código está ocorrendo nesta linha

 $array = array('creater_id' => $u_id,DATE('created_date') => $today); 

Tenho certeza de que não é assim que a cláusula where será feita, então você pode pesquisar os códigos do código! para encontrar o caminho certo para fazer isso! (Você não está dizendo a cláusula where para usar AND , OR , etc. operadores)