postgres data formatting

This commit is contained in:
Devin Smith 2015-03-03 09:49:08 -08:00
parent ec63ff60cd
commit 54c6aad03b

View File

@ -40,6 +40,14 @@ class Cana_Db_PostgreSQL_Db extends Cana_Db_Base {
// replace add single quotes to interval statements
$query = preg_replace('/(interval) ([0-9]+) ([a-z]+)/i','\\1 \'\\2 \\3\'', $query);
// replace date formats
$query = preg_replace_callback('/date_format\((.*),( )?"(.*)"\)/i',function($m) {
$find = ['/\%Y/', '/\%m/', '/\%d/', '/\%H/', '/\%i/', '/\%s/', '/\%W/'];
$replace = ['YYYY', 'MM', 'DD', 'HH24', 'MI', 'SS', 'D'];
$format = preg_replace($find, $replace, $m[3]);
return 'to_char('.$m[1].', \''.$format.'\')';
}, $query);
return parent::query($query, $args, $type);
}