带有查询的Unix Shell脚本不会通过where子句生成用于查询的数据,但是如果没有where子句,它将为postgres元数据生成数据

时间:2019-01-24 07:14:25

标签: postgresql shell unix scripting

我已经在Shell脚本中使用Postgres查询来执行并获取一些结果并加载到文件中。 该查询使用where子句,其中date列用于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 :(得分:0)

您的问题是,时间戳记丢失了单个撇号。您应该有timestamp '2018-05-05 02:00:00' - interval '1 hours',但是实际拥有的是timestamp '2018-05-05 02:00:00 - interval '1 hours'。注意02:00:00之后的撇号。请参见this page上有关PostgreSQL日期和时间戳的示例。