select *
From #####
where username in ('akhil') and between (now() ::timestamp and now() - interval '1 day'::timestamp)
此行出现错误。 错误-无法将类型间隔强制转换为没有时区的时间戳。
答案 0 :(得分:0)
您不需要第二次演员表。您需要一个列名。像这样:
select *
from #####
where username in ('akhil') and
<some date column> >= now() - interval '1 day' and
<some date column> < now();
答案 1 :(得分:0)
错误在于第二次强制转换
now() - interval '1 day'::timestamp
解释为。
now() - (interval '1 day')::timestamp
当你真正的意思
(now() - interval '1 day')::timestamp
或者你的意思是
now()::timestamp - interval '1 day'
都是有效的,但是夏令时开始或结束时您得到的结果是不同的(提示interval '1 day'
与前面的interval '24 hours'
相同)
实际上,您应该对数据库列使用timestamp with time zone
。