diff --git a/include/library/Cana/Db/PostgreSQL/Db.php b/include/library/Cana/Db/PostgreSQL/Db.php index 99cce9de7..c8aa24023 100644 --- a/include/library/Cana/Db/PostgreSQL/Db.php +++ b/include/library/Cana/Db/PostgreSQL/Db.php @@ -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); }