Ошибка функции To_date на основе базы данных Postgres - PullRequest
0 голосов
/ 19 марта 2019

У меня есть запрос, подобный этому:

Select a.*,b.event_code 
from f.table1 a join f.table2 on a.id=b.id
where a.nos='807t'
   and as_on_date=to_date (
      (select event_date from f.table2 where nos='807t'), 'dd/mm/yyyy')

Если я запускаю это, я получаю ошибку:

Function to_date (timestamp without time zone, unknown) does not exist. 
Hint: no function matches the given name and argument types.   
You might need to add explicit type casts.

1 Ответ

2 голосов
/ 19 марта 2019

Если вы хотите преобразовать метку времени в дату, используйте приведение типа :

Select a.*,b.event_code 
from f.table1 a join f.table2 on a.id=b.id
where a.nos='807t'
   and as_on_date = (select event_date::date 
                     from f.table2 
                     where nos='807t');

Синтаксис event_date::date является специфическим для Postgres. Если вы хотите использовать стандартный SQL, используйте cast(event_date as date).

Функция to_date() должна использоваться для преобразования значения строки (varchar) в значение даты.

Обратите внимание, что приведенный выше запрос не будет выполнен, если table2.nos не уникален!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...