Skip to content

YEAR 类型

YEAR 类型是用于表示年份值的 1 字节类型。可以声明为 YEAR,其隐式显示宽度为 4 个字符,或等效地声明为 YEAR(4),显式指定显示宽度为 4。

MatrixOne 以 YYYY 格式显示 YEAR 值,范围从 0001 年到 9999 年。

YEAR 接受各种格式的输入值:

  • 作为范围在 '0001' 到 '9999' 之间的 4 位字符串。
  • 作为范围在 0001 到 9999 之间的 4 位数字。
  • 作为范围在 '0' 到 '99' 之间的 1 位或 2 位字符串。MatrixOne 将范围在 '0' 到 '00' 和之间的值转换为 YEAR 值,自动补全前两位 '00',即 '0000' ~ '0099'。
  • 作为返回在 YEAR 上下文中可接受的值的函数的结果,例如 NOW()

日期中的两位数年份

由于日期中的两位数年份缺乏世纪数值,其含义不够明确。为了内部存储的一致性,MatrixOne 必须将这些日期值解释为 4 位数字形式。

对于 DATETIME、DATE 和 TIMESTAMP 类型,MatrixOne 遵循以下规则解释具有不明确年份值的日期:

  • 范围 00-99 内的年份值变为 0000-0099。

下面是关于涉及 2 位年份日期的例子:

  1. 解释 DATETIME 类型的日期:

假设我们有一个名为 event_date 的 DATETIME 类型的列,其中包含以下日期值:

event_date
2023-07-12 08:30
99-01-15 13:45
23-05-06 09:00

根据规则,日期值中的 2 位年份被解释为:

  • 99-01-15 被解释为 0099 年 1 月 15 日。
  • 23-05-06 被解释为 0023 年 5 月 6 日。

  • 解释 DATE 类型的日期:

假设我们有一个名为 birth_date 的 DATE 类型的列,其中包含以下日期值:

birth_date
95-08-21
04-11-30
88-03-17

根据规则,日期值中的 2 位年份被解释为:

  • 95-08-21 被解释为 0095 年 8 月 21 日。
  • 04-11-30 被解释为 0004 年 11 月 30 日。
  • 88-03-17 被解释为 0088 年 3 月 17 日。

  • 解释 YEAR 类型的日期:

假设我们有一个名为 graduation_year 的 YEAR 类型的列,其中包含以下年份值:

graduation_year
65
78
03

根据规则,年份值中的 2 位年份被解释为:

  • 65 被解释为 0065 年。
  • 78 被解释为 0078 年。
  • 03 被解释为 0003 年。