如何在where子句中用动态日期替换固定日期?

pobjuy32  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(344)
select concat(CURRENT_DATE, ' ', '00:00:00+02:00')

退货 "2020-07-14 00:00:00+02:00" 我可以把这个结果复制粘贴到我的 WHERE 条款:

where (xyz between timestamp with time zone '2020-06-01 00:00:00+02:00' 
and timestamp with time ZONE 2020-07-14 00:00:00+02:00

它是有效的,但是如果我使用一个更动态的结构 concat(CURRENT_DATE, ' ', '00:00:00+02:00') 取而代之的是:

where (xyz between timestamp with time zone '2020-06-01 00:00:00+02:00' 
and timestamp with time ZONE concat(CURRENT_DATE, ' ', '00:00:00+02:00')

我得到一个语法错误:
错误:“concat”行57处或附近的语法错误:…6-01 00:00:00+02:00'和带有时区concat的时间戳(cur。。。
为什么第一个where子句起作用,而另一个却不起作用,即使它以相同的格式打印相同的日期?

rqcrx0a6

rqcrx0a61#

你可以用 at time zone :

where xyz between ('2020-06-01'::date at time zone '+02:00') and (current_date at time zone '+02:00')

相关问题