LEGACY_TIME_PARSER_POLICY

适用于:勾选“是”Databricks SQL

LEGACY_TIME_PARSER_POLICY 配置参数控制日期和时间戳的解析和格式设置,以及对 1582 年 10 月 15 日之前日期的处理。

Databricks SQL 使用日期/时间模式中定义的格式将日期/时间字符串映射到日期/时间值。 建立日期/时间值后,必须对照日历对其进行验证。

可使用 SET 语句在会话级别设置此参数,使用 SQL 配置参数SQL 仓库 API 在全局级别设置此参数。

设置

支持三种设置:

  • LEGACY

    设置为 LEGACY 时,将接受超出指定模式的字符串值中的无关字段。 使用的日历是儒略历和公历的混合历法。

  • CORRECTED

    设置为 CORRECTED 时,字符串值必须与格式字符串完全匹配。 所用的日历是前公历。

  • EXCEPTION

    设置为 EXCEPTION 时,只要 LEGACYCORRECTED 的结果不同,Databricks SQL 就会引发错误。

系统默认

此参数的系统默认值为 EXCEPTION

示例

> SET legacy_time_parser_policy = legacy;
> SELECT to_timestamp('2021-01-01 12:34:56', 'yyyy-MM-dd');
  2021-01-01 00:00:00

> SET legacy_time_parser_policy = corrected;
> SELECT to_timestamp('2021-01-01 12:34:56', 'yyyy-MM-dd');
  Text '2021-01-01 12:34:56' could not be parsed, unparsed text found at index 10