我想查询给定时间范围的行,并在一天中的给定时间之间进行筛选。
例如,我想过滤给定时间范围内每个日期的“9.00 AM”和“10.00 PM”之间的时间。
My table looks like this.
这是我的示例代码:
SELECT *
FROM public.energy
WHERE time >= date_trunc('month', NOW() - INTERVAL '1 MONTH') AT TIME ZONE 'Asia/Bangkok'
AND time < date_trunc('MINUTE', NOW()- INTERVAL '1 MONTH') AT TIME ZONE 'Asia/Bangkok'
AND name = 'SWU0001'
ORDER BY id DESC;
我已经选择了所需日期之间的数据,但我希望筛选特定时间。
1条答案
按热度按时间a9wyjsp71#
不要将
timestamptz
列称为“time”,这个名称容易引起误解,它是一个基本类型名称。此外,要使用“亚洲/曼谷”的当地时间,您需要在应用
date_trunc()
之前获取该时区的当地时间,并在最后将调整后的值转换回timestamptz
。