我有一个 PostgreSQL 查询,如下所示,运行良好。我从 shell 脚本中调用它,如下所示
Result=$(psql -U username -d database -t -c
$'SELECT round(sum(i.total), 2) AS "ROUND(sum(i.total), 2)"
FROM invoice i
WHERE i.create_datetime = '2019-03-01 00:00:00-06'
AND i.is_review = '1' AND i.user_id != 60;')
Run Code Online (Sandbox Code Playgroud)
现在我想要我硬编码的值以i.create_datetime = '2019-03-01 00:00:00-06'将其替换为可变日期值。
我尝试了两种方法
方式一:
Result=$(psql -U username -d database -t -c
$'WITH var(reviewMonth) as (values(\'$reviewMonth\'))
SELECT round(sum(i.total),2) AS "ROUND(sum(i.total),2)"
FROM var,invoice i
WHERE i.create_datetime = var.reviewMonth::timestamp
AND i.is_review = \'1\' AND i.user_id != 60;')
Run Code Online (Sandbox Code Playgroud)
和
方式2:
Result=$(psql -U username -d database -t …Run Code Online (Sandbox Code Playgroud)