检查不同时区的营业时间

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

以上是关于检查不同时区的营业时间的主要内容,如果未能解决你的问题,请参考以下文章

检查时区的日期是不是超过当前时间

cmd设置时区

检查 pandas 中的 datetime 对象是不是有时区?

在tablayout片段之间进行通信[重复]

检测 dayclick 事件的营业时间

SimpleDateFormat 在不同时区 JVM 中的行为不同