PostgreSQL,pgAdmin,Java:如何使它们全部为UTC?
发布时间:2020-12-13 15:56:40 所属栏目:百科 来源:网络整理
导读:如何确保我在PostgreSQL周围的整个开发环境不会搞乱本地时区.为简单起见,我需要100%确保每个时间(标记)值都是UTC.当我使用CURRENT_TIMESTAMP函数插入带时间戳而没有时区(!)的行时,我必须意识到情况并非如此,即使我从未指定任何时区信息. 是否有任何逐步手
如何确保我在PostgreSQL周围的整个开发环境不会搞乱本地时区.为简单起见,我需要100%确保每个时间(标记)值都是UTC.当我使用CURRENT_TIMESTAMP函数插入带时间戳而没有时区(!)的行时,我必须意识到情况并非如此,即使我从未指定任何时区信息.
是否有任何逐步手册可以帮助我摆脱时区? 解决方法
这需要先了解.我写了一篇关于PostgreSQL如何处理时间戳和时区的综合答案:
Ignoring timezones altogether in Rails and PostgreSQL 你不能“不”拥有时区.您可以使用 你的陈述:
是一个contradictio in adjecto. CURRENT_TIMESTAMP返回带时区(!)的时间戳.如果您只是将其强制转换(或自动强制转换)到时间戳[没有时区],则时区偏移将被截断而不是应用.您获得本地时间(无论会话的当前时区设置是什么)而不是UTC.考虑: SELECT CURRENT_TIMESTAMP AT TIME ZONE 'UTC',CURRENT_TIMESTAMP::timestamp 除非您的本地时区设置为“UTC”或类似“伦敦”,否则这两个表达式将返回不同的值. 如果要保存在时区中看到的文字值,请使用以下方法之一: SELECT CURRENT_TIMESTAMP::timestamp,now()::timestamp,LOCALTIMESTAMP; 如果要保存以UTC表示的时间点,请使用以下方法之一: SELECT CURRENT_TIMESTAMP AT TIME ZONE 'UTC',now() AT TIME ZONE 'UTC; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |