检查不同时区的营业时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查不同时区的营业时间相关的知识,希望对你有一定的参考价值。
我的规格:
- Postgres 9.6.6,最新的Ubuntu LTS
- 服务器时区是GMT
- 一个包含两列的表格,显示每个时区的商店开盘和关闭时间。
这是表格:
ShopId OpenAt CloseAt
1 09:00:00 -08 17:00:00 -08
2 09:30:00 -05 17:30:00 -05
3 08:00:00 -11 15:00:00 -11
4 10:00:00 +07 15:30:00 +07
我需要知道的是,如果现在(在我目前的GMT时间),商店是开放的。考虑到周六和周日,它已经关闭。
我正在挖掘,我有类似的东西:
SELECT ((OpenAt,CloseAt) OVERLAPS(NOW())) AND ISODOW < 6
没有运气......
谢谢 佩雷斯
答案
试试这个 :
SELECT ((date_trunc('day',nowAtShopLocation)+"OpenAt"::time, date_trunc('day',nowAtShopLocation)+"CloseAt"::time) OVERLAPS(nowAtShopLocation,nowAtShopLocation)) and EXTRACT (ISODOW FROM nowAtShopLocation) <6
from (
select *,now() AT TIME ZONE 'UTC'+(EXTRACT(TIMEZONE_HOUR FROM "OpenAt")||' hour')::interval nowAtShopLocation from your_table
) a
以上是关于检查不同时区的营业时间的主要内容,如果未能解决你的问题,请参考以下文章