程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了时区相等的Postgres时间大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决时区相等的POSTGRes时间?

开发过程中遇到时区相等的POSTGRes时间的问题如何解决?下面主要结合日常开发的经验,给出你关于时区相等的POSTGRes时间的解决方法建议,希望对你解决时区相等的POSTGRes时间有所启发或帮助;

以下是两种评估timetz平等的方法:

@R_696_10288@CT a, b, a = b AS plain_equality
      ,'2000-1-1'::date + a = '2000-1-1'::date + b AS ts_equality
      ,a AT TIME ZONE 'UTC', b AT TIME ZONE 'UTC'  AS timetz_equality
FROM (
   @R_696_10288@CT '12:00:00 -0800'::timetz AS a, '14:00:00 -0600'::timetz AS b
   ) sub;

第一个 将它添加到一个date。该 第二 通过使AT TIME ZONE构建体。

但不要使用time with time zone。曾经。 POSTGRes仅支持该类型,因为它在sql标准中。但是它是设计破坏的(不能虑DST!),不建议使用。

在这里引用手册:

解决方法

time with time zonePOSTGRes的平等问题上遇到了麻烦。 timestamp with time zone平等的工作方式与我期望的一样,如果在对时区进行归一化之后,如果时间相同,那么它应该为真:

POSTGRes=# @R_696_10288@ct '2013-06-27 12:00:00 -0800'::timestamp with time zone = '2013-06-27 14:00:00 -0600'::timestamp with time zone;
 ?column?
----------
 t

但是,似乎不适用于以下情况time with time zone

POSTGRes=# @R_696_10288@ct '12:00:00 -0800'::time with time zone = '14:00:00 -0600'::time with time zone;
 ?column?
----------
 f

但是,不平等在我期望他们如何实现的过程中起作用:

POSTGRes=# @R_696_10288@ct '12:00:00 -0800'::time with time zone < '14:01:00 -0600'::time with time zone;
 ?column?
----------
 t

POSTGRes=# @R_696_10288@ct '12:00:00 -0800'::time with time zone > '13:59:00 -0600'::time with time zone;
 ?column?
----------
 t

我有什么误会time with time zone吗?如何以与timestamp with time zone平等相同的方式处理时区来评估平等?

大佬总结

以上是大佬教程为你收集整理的时区相等的Postgres时间全部内容,希望文章能够帮你解决时区相等的Postgres时间所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。