postgresql:对没有时区的时间戳进行时区敏感查询
我有一个带有 timestamp without time zone
列的表(假设输入的数据位于澳大利亚/悉尼
时区)。
查询 America/New_York
时区某个时间范围(即上午 8 点至下午 4 点)的数据。
有没有一种简单的方法可以实现这一目标?
谢谢,p。
I have a table with a timestamp without time zone
column (data entered is assumed to be in Australia/Sydney
time zone).
Query on data for a time range (ie 8am-4pm) in America/New_York
time zone.
Is there an easy way to achieve this?
thanks, p.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以将所有内容转换为相同的时区,以便您可以将它们进行比较(如果设置了时区):
如果未设置时区并且您需要更正一些当地时间:
一旦您按照您想要的方式获得时间,只需提取小时,您就可以使用简单的条件来选择合适的时间。
You can convert everything to the same time zone so you can compare them with (if the timezone was set):
If the time zone is not set and you need to correct it some local time:
Once you get the time the way you want, just the extract the hour and you can use a simple condition to select the proper times.
想通了。
您需要首先将时间转换为
with time zone
版本,即my_ts at time zone 'Australia/Sydney'
,然后通过at 将其转换为纽约对应时间时区“America/New_York”
Figured it out.
You need to first convert the time to it's
with time zone
version iemy_ts at time zone 'Australia/Sydney'
and then convert that to it's NY counterpart viaat time zone 'America/New_York'