YEAR 标量函数 (scalar function)

YEAR 函数用于返回字符串或图形字符串的年份部分。 该值必须是日期或时间戳的有效字符串表示形式。

阅读语法图跳过可视化语法图YEAR( 表达式)

该模式是 SYSIBM。

参数必须返回以下内置数据类型之一:日期、时间戳、字符串、图形字符串或数字数据类型。

  • 如果表达式是一个字符串或图形字符串,则它不能是CLOB或DBCLOB,其值必须是一个日期或时间戳的有效字符串表示形式,实际长度不能超过255字节。 有关日期和时间戳的字符串表示形式的有效格式,请参阅日期时间值的字符串表示形式
  • 如果表达式是一个数字,则它必须是一个日期或时间戳持续时间。 日期和时间戳持续时间的有效格式,请参阅日期时间操作数

如果表达式是带时区的时间戳,或者带时区的有效时间戳字符串表示形式,则结果由日期时间值的 UTC 表示形式确定。

函数的结果是一个大整数。

结果可以为空值;如果参数为空值,那么结果为空值。

其他规则取决于指定参数的数据类型:

  • 如果参数是日期、时间戳或它们的字符串表示形式,则结果为该值的年份部分,即1-9999之间的整数。
  • 如果参数是日期或时间戳,则结果为年份部分,即介于-9999和9999之间的整数。 非零结果与参数具有相同的符号。
  • 如果参数包含时区 ,则结果为UTC时间表示的年份部分。
示例1 :从表 DSN8C10.EMP 中选择所有出生于1941年的员工行。
   SELECT *
     FROM DSN8C10.EMP
     WHERE YEAR(BIRTHDATE) = 1941;
示例2: 以下对YEAR函数的调用返回相同的结果:
SELECT YEAR('1993-08-10-20.00.00'), 
			YEAR('1993-08-10-20.00.00-08:00'), 
			YEAR('1993-08-10-20.00.00+09:00') 
		FROM SYSIBM.SYSDUMMY1;
对于SELECT语句中YEAR函数的每次调用,结果都是1993。

当输入参数包含时区时,结果由输入值的UTC表示法决定。 在 SELECT 语句中,带有时区的字符串时间戳表示形式都具有相同的 UTC 表示形式:' 1993-08-10-20.00.00 '。