SQL 变更:添加新的日期和时间格式元素(待定)¶
启用此行为变更捆绑包后,将启用新的短格式日期和时间格式元素,这会影响日期时间格式和解析逻辑。
- 变更前:
在日期时间到字符串或字符串到日期时间转换中,以下格式元素被解析并序列化为字面量字符:
Y、MO、D、H24、H12、H、ME、S、P。- 变更后:
以下新格式元素现在由解析和格式化逻辑解释:
Y对应“年”(非填充)MO对应“月”(非填充)D对应“日”(非填充)H24对应“一天中采用 24 小时制的小时”(非填充)H12对应“一天中采用 12 小时制的小时”(非填充)H与H24同义ME对应“分钟”(非填充)S对应“秒”(非填充)P对应“单个字母AM/PM指示器”(A 表示 AM,或 P 表示 PM)
这些字符或序列的任何未加引号的用法都将被解释为格式元素,而不是字面量。
此行为变更可能会对那些在 DATE、TIME、TIMESTAMP_LTZ、TIMESTAMP_NTZ 或 TIMESTAMP_TZ 的格式模型中将这些新格式元素作为未加引号的字符使用的用户构成破坏性变更。
例如:
以前,
SELECT TO_CHAR(current_timestamp(), 'YYYY-MM-DD JST')会将序列“JST”作为字面量字符输出,例如:2026-03-18 JST。现在,
JST中的S会被解释为“秒”格式元素,格式化逻辑会插入一个数值:2026-03-18 J47T。
您需要做什么¶
如果在格式模型中将这些新格式元素中的任何一个用作未加引号的字符或字符串,请引用格式模型中应保留为字面量字符的任何部分。例如:
参考:2281