Сценарий оболочки Unix с запросом не генерирует данные для запроса с предложением where, но без предложения where создает данные для метаданных postgres - PullRequest
0 голосов
/ 24 января 2019

Я использовал запрос Postgres в сценарии оболочки для выполнения и получения некоторого результата и загрузки в файл. Запрос использует предложение where, в котором столбец даты используется для базы данных postgres. Без предложения where он генерирует данные, но с предложением where в запросе он не генерирует данные. Ниже приведен пример запроса для справки.

psql -h host -p port -U username -w -d databasename -Atc 
"with A as(  select max(col1) as max_inst_id,col2,col3,col4 from 
sch_task_Inst where col5 > timestamp '2018-05-05 02:00:00 - interval 
'1 hours'  group by col1,col2,col3,col4  ) 
select b.col1 as task_nm,A.col1 as run_status,A.col2 as run_log from 
A join sch_task b on A.col1 = b.col1  where A.col2 = 'FAI' ;" >> 
/app/ditechstyle/diserver/app/source/Sch_test.dat

Может кто-нибудь сказать мне, в чем проблема с предложением запроса where?

1 Ответ

0 голосов
/ 24 января 2019

Ваша проблема в том, что вам не хватает ни одного апострофа после вашей отметки времени. У вас должно быть timestamp '2018-05-05 02:00:00' - interval '1 hours', но на самом деле у вас есть timestamp '2018-05-05 02:00:00 - interval '1 hours'. Обратите внимание на апостроф после 02:00:00. См. Примеры на этой странице о датах и ​​временных отметках PostgreSQL.

...