繁体   English   中英

在psql命令中使用shell变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM