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 位年份日期的例子:
- 解释 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 年。