22009 — invalid_time_zone_displacement_value
时区偏移量超出支持范围。
英文手册覆盖始于 PostgreSQL 8.1. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- aliases
- 未知
- class name
- Data Exception
- condition name
- invalid_time_zone_displacement_value
- lang
- en
- sqlstate
- 22009
版本定义 PG 18
22009
速览 {#at-a-glance}
固定 timetz_recv 二进制输入路径报告 time zone displacement out of range,表示 GMT 位移超过支持范围。
含义 {#meaning}
已确认的 timetz_recv guard 会把收到的 GMT 位移与 PostgreSQL 支持的上限比较;这是二进制输入契约错误,不是一般 session TimeZone 设置错误。
报文 {#messages}
已确认的 guard 以 ERROR 严重性报告 primary:time zone displacement out of range。该源码路径没有固定 DETAIL 或 HINT。本页只有源码证据,没有自然运行观察。
诊断 {#diagnosis}
保留实际收到的 offset 数值,检查提供该值的二进制 timetz 接收器或协议解码器,区分位移越界、一般 datetime 字段越界和 session TimeZone 设置问题。
处置 {#response}
在提供该值的客户端或二进制输入边界校验并替换位移;只有输入契约支持时才改用具有预期语义的命名时区。这是 ERROR:显式事务中要回滚整个事务,或回滚到失败转换前建立的保存点后再继续。本页没有运行案例。
版本 {#versions}
锁定目录从 7.4 记录该条件,并在列出的正式快照及 19beta3 中出现;固定源码覆盖为 PostgreSQL 18.6。
相关条件 {#related}
来源 {#sources}
详见结构化的证据记录,其中列出固定源码链接与范围限制。
比较版本
SQLSTATE 证据与已记录的运行版本
claims · identity
{
"claim_id": "identity",
"limits": "",
"method": "Read fixed definition.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "22009 is invalid_time_zone_displacement_value in SQLSTATE Class 22."
}claims · mechanism.timezone-displacement
{
"claim_id": "mechanism.timezone-displacement",
"limits": "This is a displacement-range error, distinct from malformed date text or session TimeZone configuration.",
"method": "Read the complete displacement guard.",
"position": 1,
"runtime": [],
"sources": [
"src.path.timezone-displacement"
],
"statement": "The date/time binary receive path checks the GMT displacement against the supported TZDISP_LIMIT and emits 22009 when it is outside that range."
}claims · history
{
"claim_id": "history",
"limits": "",
"method": "Use catalogue boundary.",
"position": 2,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "The locked catalogue records 22009 from 7.4 without proving an exact implementation introduction date."
}messages · message.timezone
{
"limits": "",
"message_id": "message.timezone",
"path": "",
"position": 0,
"raw": {
"id": "message.timezone",
"primary_template": "time zone displacement out of range",
"severity_source": "ERROR",
"sources": [
"src.path.timezone-displacement"
],
"sqlstate": "22009"
},
"severity": "ERROR",
"sources": [
"src.path.timezone-displacement"
],
"templates": [
{
"kind": "primary",
"literal": "time zone displacement out of range",
"position": 0,
"role": "",
"template": "time zone displacement out of range"
}
]
}sources · src.errcodes.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/errcodes.txt",
"position": 0,
"sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
"source_id": "src.errcodes.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L192"
}sources · src.calls.REL_18_6
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "raw/calls/REL_18_6.jsonl",
"position": 1,
"sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
"source_id": "src.calls.REL_18_6",
"tag": "",
"url": ""
}sources · src.path.timezone-displacement
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/adt/date.c",
"position": 2,
"sha256": "4834c868f3461822eb0de972fe35b04f9fb9ba75cf2fa9794a67259536f35773",
"source_id": "src.path.timezone-displacement",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/date.c#L2419-L2425"
}来源引用
定义来源
center · PostgreSQL 18 · english-manuals:a9c652ccb1889c94f7860800ac57f3e5ee16a4f7995207d4bd48421d4639259c
正文语言: zh-Hans · english-manuals:a9c652ccb1889c94f7860800ac57f3e5ee16a4f7995207d4bd48421d4639259c