我已经在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子句是什么问题吗?
答案 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日期和时间戳的示例。