как правильно order_by (время) в codeigniter - PullRequest
1 голос
/ 05 марта 2012

Как сделать деталь order_by в codeigniter?

SELECT <field> FROM <table> ORDER BY STR_TO_DATE( <field>,  '%H:%i' ) DESC LIMIT 0 , 30

Попробовал это, но в качестве имени поля принимается "'%H:%i')".

$this->db->order_by("STR_TO_DATE(".$field.", '%H:%i')", $order);

Поле являетсяvarchar и отправленный мной запрос возвращает желаемый результат, но я не знаю, как это сделать в codeigniter

1 Ответ

2 голосов
/ 07 марта 2012

Я не думаю, что вы можете сделать это в CodeIgniter в версии 2.1.0. Как сказал Madmartigan, запятая запускает CI, чтобы обернуть неправильную часть в кавычки и, таким образом, выдавать ошибку mysql. Я думаю, что нет смысла копаться в активной записи в функции order_by, чтобы найти обходной путь, чем реальное исправление для этой работы. Я проверяю в верхнем потоке, и, очевидно, у них есть что-то, что интересно , вы можете следить, когда это выйдет.

Я не тратил больше времени на поиск обходного пути в активной записи order_by, но прибегнул к этой альтернативе, которая, кажется, работает нормально. Рассмотрим следующее?

$sql = "SELECT <field> FROM <table> ORDER BY STR_TO_DATE(?, '%H:%i') desc LIMIT 0, 30";
$this->db->query($sql, array('19:20'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...