Выбор диапазона в метке времени из mysql работает в phpmyadmin, но не в codeigniter - PullRequest
0 голосов
/ 26 апреля 2018

Я прочитал почти каждый вопрос, который нашел здесь, и не нашел решения для моей проблемы.

Дело в том, что мой запрос работает в поиске phpMyAdmin, но не работает в запросе codeigniter.

вот код от phpMyAdmin, который работает:

SELECT * FROM `pozvani_brojevi` 
WHERE `vrijeme_poziva` 
BETWEEN '2018-04-05 00:00:00' AND '2018-04-26 00:00:00' 
ORDER BY `vrijeme_poziva` DESC

и вот код из codeigniter, который не работает:

$this->db->select('*');
$this->db->from('pozvani_brojevi');
$this->db->where('user_id', $user_id);
$this->db->where("'vrijeme_poziva', BETWEEN 2018-04-05 00:00:00 AND 2018-04-26 00:00:00");
$result = $this->db->get();
$pozvani = $result->result_array();
return $pozvani;    

обратите внимание, что я изменил код различными способами и всегда получал один и тот же результат

$this->db->where("vrijeme_poziva, BETWEEN 2018-04-05 00:00:00 AND 2018-04-26 00:00:00");

$this->db->where("vrijeme_poziva BETWEEN 2018-04-05 00:00:00 AND 2018-04-26 00:00:00");

и я получаю это сообщение об ошибке:

Номер ошибки: 1064

У вас ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного использования синтаксиса около '00:00:00 И 2018-04-26 00:00:00' на линии 4

SELECT * FROM `pozvani_brojevi` WHERE `user_id` IS NULL AND `vrijeme_poziva` BETWEEN `2018-04-05` `00:00:00` AND 2018-04-26 00:00:00

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Вы можете использовать метод запроса с вашим SQL-запросом, как -

$query = $this->db->query("SELECT * FROM `pozvani_brojevi` WHERE `vrijeme_poziva` BETWEEN '2018-04-05 00:00:00' AND '2018-04-26 00:00:00' ORDER BY `vrijeme_poziva` DESC");

Для получения дополнительной информации см. https://www.codeigniter.com/userguide3/database/queries.html

0 голосов
/ 26 апреля 2018
Hi you can use this query.

$this->db->select('*');
$this->db->from('pozvani_brojevi');
$this->db->where('user_id', $user_id);
$this->db->where('vrijeme_poziva >=', date('2018-04-05'));
$this->db->where('vrijeme_poziva <=', date('2018-04-26'));
$result = $this->db->get();
$pozvani = $result->result_array();
return $pozvani; 
0 голосов
/ 26 апреля 2018

Используйте Null в качестве второго и FALSE в качестве третьего параметра, как показано ниже:

$this->db->where(' vrijeme_poziva BETWEEN 2018-04-05 00:00:00 AND 2018-04-26 00:00:00', NULL, FALSE);

Еще одна опция, которую вы можете использовать >= и <= в двух отдельных where условиях, как показано ниже:

$this->db->where('vrijeme_poziva >=', '2018-04-05 00:00:00');
$this->db->where('vrijeme_poziva <=', '2018-04-26 23:59:59');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...