You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL有效时间戳格式及特殊日期值合法性咨询

PostgreSQL 无时区时间戳的有效性规则说明

一、基础规则

PostgreSQL的timestamp without time zone类型遵循真实日历逻辑,输入值必须符合合法的日期时间范围,否则会判定为无效(除非开启宽松模式自动修正)。

二、2000-99-00是否有效?

完全无效,两个部分都不符合规则:

  • 月份99远远超出了合法的1-12范围;
  • 日期00也不合法,不存在“0号”日期,合法日期是对应月份的实际天数(比如1月1-31,2月最多29天等)。

三、月份和日期的合法范围

  • 月份:固定是01到12(不带前导零的1-12也可以),超出这个范围的数值直接导致时间戳无效。
  • 日期:不是固定的01-31,得看对应月份和年份的实际天数:
    • 大月(1、3、5、7、8、10、12月):1-31日
    • 小月(4、6、9、11月):1-30日
    • 2月:平年1-28日,闰年1-29日(闰年判断:能被4整除但不能被100整除,或者能被400整除)

补充:宽松输入的自动修正

PostgreSQL默认允许一些“不严谨”的日期输入,比如2000-02-30会被自动转成2000-03-01,但这是系统的自动修正,不代表原输入是合法的。如果需要严格校验,可设置datestyle = 'ISO, strict',此时非法日期会直接报错。

内容的提问来源于stack exchange,提问作者Denys TDV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:45:49