[英]Using shell variable in psql command
我需要一些帮助将外壳变量发送到.sh中的psql -c查询:
#!/bin/sh
timeStamp=`date +%s`
timeStampLast24H= expr $timeStamp - 86400
psql -U postgres -c "COPY (SELECT atribute FROM table WHERE ts>$timeStampLast24H) TO stdout DELIMITER ';' CSV HEADER; > (...)"
我这样做是为了从最后一天开始仅获取行,因为创建数据库的人使用rectimestamp
作为整数,而来自postgres的常规函数将不起作用(例如now()-interval 'Given_Period'
)。
更改“ $ timeStampLast24H”可以使postgres理解一个与最后24小时开始的时间戳完全对应的整数,这对我来说也是可以的。 如果我在其位置使用了确切的时间戳,则查询效果很好。
谢谢。
这项作业
timeStampLast24H= expr $timeStamp - 86400
是不正确的。
请注意,它与该分配有何不同?
timeStamp=`date +%s`
您在=
后添加了一个空格,并省略了反引号或$()
包装。
解决这些问题,您的问题可能会消失。 因为它是没有价值的查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.