PostgreSQL to_date()

У меня проблема с PostgreSQL to_date() функция, в моем коде, упомянутом ниже, я получаю синтаксическую ошибку, но не могу найти где.

SELECT * from crosstab('select upit, sat, count(*) as broj
                                from upiti
                                where datum >= to_date('26-10-2014','DD-MM-YYYY') AND datum <= to_date('29-10-2014','DD-MM-YYYY')
                                group by upit,sat
                                ORDER BY upit,sat',

'select rbrSat from sat order by rbrSat') as ct (upit text, s00 INT, s01 INT, s02 INT, s03 INT, s04 INT, s05 INT, s06 INT, s07 INT, s08 INT, s09 INT, s10 INT, s11 INT, s12 INT, s13 INT, s14 INT, s15 INT, s16 INT, s17 INT, s18 INT, s19 INT, s20 INT, s21 INT, s22 INT, s23 INT);

Это говорит о том, что синтаксическая ошибка близка к "2014". Кто-нибудь знает, где проблема?

1 ответ

Решение

Вы пытаетесь использовать неэкранированные одинарные кавычки ' внутри одной строки в кавычках. Если вам нужно добавить одиночную кавычку внутри строки, она должна быть удвоена, как в '';

SELECT * from crosstab('select upit, sat, count(*) as broj
                        from upiti
                        where datum >= to_date(''26-10-2014'',''DD-MM-YYYY'') 
                          AND datum <= to_date(''29-10-2014'',''DD-MM-YYYY'')
                            group by upit,sat
                            ORDER BY upit,sat',

...

Другие вопросы по тегам