Использование CAST AS в запросах к бд

Здравствуйте.

Следующая проблема:

$date_sess_obj_arr = Sessions::model()->findAllBySql(‘SELECT Session_ID FROM Sessions WHERE CAST(Start_Time AS DATE) = ‘.$date.’ ORDER BY Session_ID DESC’);

в таком виде не работает. Точнее возвращает пустой массив.

Чувствую, что нужно через CDbExpression это делать, но не вполне понятно как.

Пробовал:

$date_sess_obj_arr = Sessions::model()->findAllBySql(‘SELECT Session_ID FROM Sessions WHERE’.new CDbExpression(‘CAST(Start_Time AS DATE)’).’ = ‘.$date.’ ORDER BY Session_ID DESC’);

Вызывает CDbException.

Заранее спасибо за совет.

А ты уверен что правильно написал сам SQL запрос?

Почему ты в этом уверен?

Какого типа Start_Time?

Какое значение у $date?

Какой текст ошибки у CDbException?

$date_sess_obj_arr = Sessions::model()->findAll(

‘select’ => ‘Session_ID’,

‘condition’ => ‘CAST(Start_Time AS DATE) = :Date’,

‘params’ => array(’:Date’ => $date),

‘order’ => ‘Session_ID DESC’

);

Поздравляю, вы ответили на 1 уточняющий вопрос из 5. Прекрасный результат <_<

Телепаты в отпуске.

Может быть проблема в отсутствии пробела внутри кавычки


$date_sess_obj_arr = Sessions::model()->findAllBySql('SELECT Session_ID FROM Sessions WHERE'. //<--вот тут

new CDbExpression('CAST(Start_Time AS DATE)').' = '.$date.' ORDER BY Session_ID DESC');



Ведь получается что то вроде "FROM Sessions WHERECAST(Start_Time AS DATE"

Я же просил вас предоставить текст SQL запроса, которые передается в findAllBySql. То что вы написали это РНР код, которые генерирует запрос, а мне нужен результат его работы, т.е. сам запрос, которые можно было бы получить:




$sql='SELECT Session_ID FROM Sessions WHERE'.new CDbExpression('CAST(Start_Time AS DATE)').' = '.$date.' ORDER BY Session_ID DESC';

echo $sql;

$date_sess_obj_arr = Sessions::model()->findAllBySql($sql);



автор топика не я

Ой, извиняюсь.