PostgreSQL 中具有夏令时的时区

2024-01-04

我们正在部署自己的流量计(很像 USGS 流量计:http://waterdata.usgs.gov/usa/nwis/uv?site_no=03539600 http://waterdata.usgs.gov/usa/nwis/uv?site_no=03539600)这样我们皮划艇运动员就知道是否有足够的水来划溪,而不必浪费时间和汽油去那里开车。我们希望在横跨东部和中部时区的东南白水地区安装一些这样的设备。

我使用记录的 current_time 默认值来存储插入记录的时间。我想稍后使用显示数据MM/DD/YYYY HH12:MI AM TZ格式,输出如下03/12/2012 01:00 AM CDT。我还希望输出能够了解夏令时的变化,因此当我们“前进”和“后退”时,上一句的最后部分会在 CST 和 CDT 之间发生变化。此更改发生于今年 2012 年 3 月 11 日,我已在下面的 DST 线两侧添加了日期。我使用 Windows 7 笔记本电脑进行开发,稍后我们将在 Unix 机器上进行部署。 Postgres 显然检测到我的 Windows 计算机设置为美国东部时区。我正在尝试使用“无时区的时间戳”字段和“带时区的时间戳”字段,但无法使其工作。

我尝试在我的选择中使用“at time zone”,一切正常,直到显示时区。当我询问 CDT 中的时间时,实际小时是时间戳的一部分,正确减去一个小时。但输出中显示 EDT。

SELECT reading_time as raw,
       reading_time at time zone 'CDT',
       to_char(reading_time at time zone 'CDT',
           'MM/DD/YYYY HH12:MI AM TZ') as formatted_time
  FROM readings2;

"2012-04-29 17:59:35.65";"2012-04-29 18:59:35.65-04";"04/29/2012 06:59 PM EDT"
"2012-04-29 17:59:40.19";"2012-04-29 18:59:40.19-04";"04/29/2012 06:59 PM EDT"
"2012-03-10 00:00:00";"2012-03-10 00:00:00-05";"03/10/2012 12:00 AM EST"
"2012-03-11 00:00:00";"2012-03-11 00:00:00-05";"03/11/2012 12:00 AM EST"
"2012-03-12 00:00:00";"2012-03-12 01:00:00-04";"03/12/2012 01:00 AM EDT"

我将每个仪表所在的时区存储在一个单独的表的字符变化字段中。我考虑只是将此值附加到时间输出的末尾,但我希望它从 CST 更改为 CDT 而无需我的干预。

感谢您的帮助。


而不是使用时区缩写,例如CDT or CST,你可以考虑使用完整的奥尔森风格时区名称 http://en.wikipedia.org/wiki/List_of_tz_database_time_zones。如果是中部时间,您可以选择时区。与您的位置匹配的任一选项,例如America/Chicago, 要不就US/Central。这确保 PostgreSQL 使用 Olson tz 数据库自动确定任何给定日期是否适用夏令时。

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

PostgreSQL 中具有夏令时的时区 的相关文章

  • 查明用户是否有权在 PostgreSQL 中选择/更新/...表/函数/...

    确定用户是否对 PostgreSQL 中的某个类 例如表或函数 拥有特定权限 例如选择或执行 的推荐方法是什么 此刻我得到了类似的东西 aclcontains someColumnWithAclitemArray makeaclitem u
  • 如何手动设置auto_increment的下一个值?

    我手动向表中添加了一些行 并且还手动设置了 ID 自动增量 现在 当我尝试通过我的应用程序将新行添加到数据库表中时 我收到错误 创建的 ID 值已存在 如何手动设置下一个ID值 例如 在表中我必须有ID 那么如何告诉PostgreSQL 下
  • 如何获取 JDBC 中 UPDATE 查询影响的所有行?

    我有一项任务需要使用更新记录PreparedStatement 一旦记录被更新 我们知道更新查询返回计数 即受影响的行数 但是 我想要的不是计数 而是受更新查询影响的行作为响应 或者至少是受影响的行的 id 值列表 这是我的更新查询 UPD
  • 使用 AT TIME ZONE 获取指定时区的当前时间

    我正在尝试使用新的在 SQL Server 2016 和 Azure SQL 中 我只是想获取伦敦的当前时间datetime 针对夏令时进行调整 运行以下所有命令时 伦敦时间为凌晨 3 27 点 第一步是获得一个datetimeoffset
  • Rails 4 - 如何在开发中使用 sqlite3 以及在生产中使用 PostgreSQL 和 Heroku

    我正在尝试部署到 Heroku 但不能 因为默认的 sqlite3 服务器仍然存在 检测到 Heroku 不支持 sqlite3 gem https devcenter heroku com articles sqlite3 https d
  • 使用 Rails 中的 postgres json 字段更新嵌套键

    我一直在尝试更新以下内容 boxes book 2 moving 2 goods to boxes book new 2 moving 2 goods 无需使用正则表达式或在 ruby 中执行此操作 但似乎有点棘手 我想添加新密钥 然后删除
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 将 CSV 复制到 Amazon RDS 托管的 Postgresql 数据库

    我有一个使用 Amazon 的 RDS 服务托管的数据库 我正在尝试编写一个 Web 服务来更新所述数据库 我遇到的问题是它不允许我使用 COPY 命令 因为我收到此错误 错误 必须是超级用户才能复制到文件或从文件复制 我正在使用我为数据库
  • 从命令行执行查询时出现 PostgreSQL 编码问题

    我正在尝试执行存储在文件中的 SQL 查询 我正在使用以下命令来执行 psql d DB NAME a f QUERY NAME sql 我在 SQL 文件中有一些非英语文本 例如 执行查询时 数据库中的文本如下所示 我如何执行查询命令行以
  • PostgreSQL安装错误——无法分配内存

    我正在尝试从 sqlite3 切换到 PostgreSQL 以在 Rails 中进行开发 这样我就不会遇到任何 heroku 问题 我遵循了heroku和链接到的Railscast上给出的建议 但是在brew安装postgresql后遇到了
  • MySQL 创建和更新时的 CURRENT_TIMESTAMP

    我想定义一个有 2 个 TIMESTAMP 字段的表 如下所示 CREATE TABLE msgs id INT PRIMARY KEY AUTO INCREMENT msg VARCHAR 256 ts create TIMESTAMP
  • 如何为 MySQL 和 Postgres 编写不区分大小写的查询?

    我在本地运行 MySQL 数据库进行开发 但部署到使用 Postgres 的 Heroku Heroku 处理几乎所有事情 但我不区分大小写的 Like 语句变得区分大小写 我可以使用 iLike 语句 但我的本地 MySQL 数据库无法处
  • 处理时区转换的 JavaScript 库

    是否有一个 JavaScript 库可以处理时区转换 并考虑 DST 规则和此类内容 我知道有类似的问题 但我见过的问题似乎都没有真正适合我的问题的答案 我想在时区 A 创建一个日期并能够对其进行操作 添加天数 小时等 然后将其转换为另一个
  • 基于列顺序的查询速度

    数据库中列类型的顺序对查询时间有影响吗 例如 具有混合排序 INT TEXT VARCHAR INT TEXT 的表的查询速度是否会比具有连续类型 INT INT VARCHAR TEXT TEXT 的表慢 答案是肯定的 这确实很重要 而且
  • Rails 多租户架构,限制多个租户的访问范围

    目前我们有一个单租户数据库架构 MySQL 运行着超过 100 个数据库 我们使用 Apartment gem 切换子域上的数据库连接 一切都很顺利 然而 我们现在需要创建所谓的 伞 客户端 它可以访问一组现有客户端的所有数据 我不认为这对
  • 多租户 Rails 应用:不同技术的优缺点是什么?

    我最初是为一位客户编写 Ruby on Rails 应用程序的 现在 我正在更改它 以便它可以用于不同的客户 我的最终目标是某些用户 不是我 可以单击按钮并创建一个新项目 然后生成所有必要的更改 新架构 新表 代码处理 无需任何人需要我编辑
  • 如何创建postgres数据库模式的sql脚本?

    我想要 postgres 9 数据库模式的 sql 脚本 该脚本不在本地服务器上 我在 pgAdmin 的 sql 编辑器上尝试了 pg dump 命令 但它在那里不起作用 我不确定在哪里运行该命令 请帮助我做同样的事情 谢谢 pg dum
  • 如何在数据库中保存未来(!)日期

    这个问题专门涉及未来的日期和时间 对于过去的值 UTC 无疑是首选 我想知道是否有人对拯救生命的 最佳 方法有建议futureMySQL 数据库中的日期和时间 或者就此而言一般来说 特别是在该列可以保存不同时区时间的情况下 考虑到时区规则可
  • 使用nodejs的sequelize更新多对多连接表

    我有一个产品表和一个类别表 一个产品可以有多个类别 一个类别可以有多个产品 因此我有一个 ProductsCategories 表来处理多对多连接 在下面的示例中 我尝试将我的一款产品 ID 为 1 与 3 个不同的类别 ID 为 1 2

随机推荐