存储时区的合适数据类型是什么?

2024-01-02

我正在考虑简单地使用格式为“+hh:mm”(或“-hh:mm”)的字符串。这是必要且充分的吗?

注意:我不需要存储日期或时间,只需存储时区。


不幸的是 PostgreSQL 不提供时区数据类型,所以你应该使用text.

interval乍一看似乎是一个合乎逻辑的选择,而且它is适合某些用途。但它没有考虑夏令时,也没有考虑同一UTC偏移量的不同地区有不同的DST规则。

不存在从 UTC 偏移量到时区的 1:1 映射。

例如,时区Australia/Sydney(新南威尔士州)是UTC+10 (EST), or UTC+11 (EDT)在夏令时期间。是的,这是相同的缩写EST美国使用的;时区缩写在 tzdata 数据库中不是唯一的,这就是为什么 Pg 具有timezone_abbreviations环境。更糟糕的是,布里斯班(昆士兰州)几乎处于同一经度,并且位于UTC+10 EST...但没有夏令时,所以有时会在-1在新南威尔士州 DST 期间向新南威尔士州偏移。

(Update:最近澳大利亚通过了一项A前缀,所以它使用AEST作为其东部各州 TZ 的缩写,但是EST and WST仍被普遍使用)。

很混乱吗?

如果您需要存储的只是UTC 偏移量然后一个interval是合适的。如果你想存储一个时区,将其存储为text。目前验证并转换为时区偏移量很痛苦,但至少它可以应对 DST。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

存储时区的合适数据类型是什么? 的相关文章

随机推荐

  • 无法在 glsl 中使用“%”

    今天写shader程序的时候遇到了一个情况 必须使用 找到余数 GLSL 给我一个错误 说它在当前版本中不可用 我已经尝试了几个问题 GLSL 不支持递归函数和 while 循环 如果我想创建一个可以给出以下结果的函数 则需要使用递归函数和
  • android 蓝牙配对请求

    你可以帮帮我吗 如何检查用户是否拒绝蓝牙配对请求 一旦用户按下蓝牙配对请求屏幕上的取消 意图与行动 android bluetooth BluetoothDevice ACTION BOND STATE CHANGED 被触发 并在其内部与
  • 定制组件 IONIC 4

    我有一个离子应用程序并创建了一个自定义组件ion navbar但是 我如何在我的所有页面中使用这个组件呢 如果我在所有页面上声明他 我会收到此错误 如果你想要的话 这是我的 Githubhttps github com tiagosilve
  • 如何动态构建back bean编辑表单

    我需要构建一个动态放置 inputText 字段的表单 我使用以下代码
  • AWK - 我需要编写一个单行 shell 命令来计算所有行数

    我需要将此解决方案编写为 AWK 命令 我被最后一个问题困住了 编写一个单行 shell 命令 该命令将计算名为 file txt 的文件中的所有行 这些行以括号中的十进制数字开头 包含大小写字母的混合 并以句点结尾 例子 这是我们要打印的
  • 如何使用 Reflection API 在 TypeScript 中获取数组项类型?

    我在 TypeScript 中有以下小类 其中装饰了一些公共字段 class Company dataMember public name string dataMember public people Person class Perso
  • android 中图像的 ZigZag 动画

    我正在开发一个 Android 应用程序 其中有 10 个气球 我想以锯齿形风格制作这些气球的动画 我是美国宁价值动画师 http developer android com reference android animation Valu
  • 如何强制QT5 MediaPlayer显示字幕?

    我正在评估从 Qt 4 8 到 Qt 5 2 的迁移 最重要的一点是多媒体后端 在 Qt 5 2 中 有一些 Qt 4 8 中的 Phonon 后端没有提供的重要功能 但至少旧版本显示了字幕 SRT 文件与视频文件位于同一目录中 文档和反复
  • Python 张量积

    我有以下问题 出于性能原因我使用numpy tensordot因此我的值存储在张量和向量中 我的计算之一如下所示
  • Continuum 作为 Jenkins 的替代品? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我们公司 我们正在严格审视 Java 开发 QA 领域的产品 我们正在研究的产品之一是 Apache Continuum 有 Continuu
  • 如何在 Visual Studio 2013 中创建多项目模板?

    我跟着如何 创建多项目模板 http msdn microsoft com en us library ms185308 aspx创建一个模板的文章 该模板将生成包含 4 个项目的解决方案 我的 Root vstemplate 文件包含以下
  • 如何对列表列表中的向量进行子集化

    我有以下列表 foo lt list a list x 1 10 y 11 25 b list x 1 10 y 100 110 它看起来像这样 gt foo a a x 1 1 2 3 4 5 6 7 8 9 10 a y 1 11 12
  • Android Studio C++优化参数性能

    为什么对于相同的功能和硬件 VS Android with Eclipse 和 Android Studio 的性能不同 我需要使用以下附加编译器选项 std c 11 fexceptions mtune arm7 mfpu vfpv3 d
  • 用不同的颜色为每个错误栏着色

    我正在尝试绘制一个errorbar图表中 每个误差条可能是红色或绿色 具体取决于用于计算误差条的统计数据是否显着 我尝试使用颜色数组作为输入c参数 但这不起作用 有谁知道这是怎么做到的吗 这是我到目前为止的代码 yerrs np array
  • os.walk() 是否缺少目录的符号链接?

    我有一个目录 其中包含一些文件 一些目录 一些文件的符号链接和一些目录的符号链接 当我在目录中使用 followlinks false 执行 os walk 时 我会获取文件名列表中的文件和指向文件名列表中的目录的符号链接 但目录的符号链接
  • 如何在 Azure API 管理中使用 validate-jwt 策略验证使用 RS256 算法签名的 JWT

    我可以使用 HS256 成功验证 JWT 签名validate jwt通过设置 Azure API 管理中的策略
  • 无法在 ubuntu 13.04 中显示 Android 设备

    我有一台 Android 平板电脑设备 无法通过我的笔记本电脑 T61 上的 Android 设备显示 但它在具有相同操作系统 Ubuntu 13 04 的 DELL PC 上运行良好 我已将 adb 更新到最新的 platform too
  • XAML ColumnDefinition 中 *(星号)的含义是什么?

    下面的 XAML 中 星号 的含义是什么
  • CSS Border RADIUS,哪种样式才是正确的使用方式?边界半径? -webkit-边框-半径? -moz-边界半径?

    我想使用 CSS 创建漂亮的圆形边框 我知道以下 CSS 样式 border radius webkit border radius moz border radius 哪种风格最好用 您应该使用所有三个规则 这样 您的页面就可以在 Moz
  • 存储时区的合适数据类型是什么?

    我正在考虑简单地使用格式为 hh mm 或 hh mm 的字符串 这是必要且充分的吗 注意 我不需要存储日期或时间 只需存储时区 不幸的是 PostgreSQL 不提供时区数据类型 所以你应该使用text interval乍一看似乎是一个合