Active Record форматированны вывод

Интересует можно  ли  из модели получить такой же результат как

следующим  запросом  select id, to_char(stm,'HH24:MI') as stm from table1

(для  тех кто не  работает с базами PostgeSQL поясню  запись to_char(stm,'HH24:MI')  в  базе значение  08:05:00 после обработки отбрасываются  секунды и  получится  на  выводе 08:05)

другими словами  интересует как  в модели применить функцию к полю

или  только  возможно обрабатывать результирующий массив, например

$arr = M::model()->findAll();

foreach ($arr as $item)

{

  …

  echo substr($test[0]->stm,0,2).":".substr($test[0]->stm,3,2);

  …

}

забыл сказать в  базе stm хранится в следующем виде hh:mm:ss (08:05:00)

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

Все просто, определяешь CDbCriteria

Например так:



		$criteria=new CDbCriteria;


		$criteria->select = "id, to_char(stm,'HH24:MI') as stm";


		$criteria->condition='status='.Post::STATUS_PUBLISHED;


		$criteria->order='createTime DESC';


и дальше подключаешь так



M::model()->findAll($criteria);


Quote

Все просто, определяешь CDbCriteria

Например так:



		$criteria=new CDbCriteria;


		$criteria->select = "id, to_char(stm,'HH24:MI') as stm";


		$criteria->condition='status='.Post::STATUS_PUBLISHED;


		$criteria->order='createTime DESC';


и дальше подключаешь так



M::model()->findAll($criteria);


спасибо!

Но используя CDbCriteria в таком виде:

$criteria->select = "id, to_char(stm,'HH24:MI') as stm";

Мы не получим кроссплатформенности кода (т.е. запрос будет работать только при использовании PostgreSQL. Конечно, если мы знаем, что никогда этот код ни с чем другим работать не будет, то можно и так оставить.

Но, если сделать кроссплатформенный код, то может быть лучше так:



$arr = M::model()->findAll();


foreach ($arr as $item)


{


  [...]


  echo date("H:i", strtotime($item->stm));


  [...]


}


Quote

Но используя CDbCriteria в таком виде:
$criteria->select = "id, to_char(stm,'HH24:MI') as stm";

Мы не получим кроссплатформенности кода (т.е. запрос будет работать только при использовании PostgreSQL. Конечно, если мы знаем, что никогда этот код ни с чем другим работать не будет, то можно и так оставить.

Но, если сделать кроссплатформенный код, то может быть лучше так:



$arr = M::model()->findAll();


foreach ($arr as $item)


{


  [...]


  echo date("H:i", strtotime($item->stm));


  [...]


}


Спасибо за  помощь,  но речи быть не может в этой задаче  о кроссплатформенности, так как используется во всю процедурный  язык  PL/pgSQL