MONTH 标量函数 (scalar function)

MONTH函数用于返回数值中的月份部分。

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

该模式是 SYSIBM。

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

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

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

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

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

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

  • 如果参数是日期、时间戳或它们的字符串表示形式,则结果为该值的月份部分,即1-12之间的整数。
  • 如果参数是日期持续时间或时间戳持续时间,则结果为该值的月份部分,即介于-99和99之间的整数。 非零结果与参数具有相同的符号。
  • 更改开始如果参数包含时区 ,则结果为UTC时间下月份的部分。更改结束
示例1 :选择样本表DSN8C10.EMP 中所有出生于5月的员工行:
   SELECT * FROM DSN8C10.EMP
     WHERE MONTH(BIRTHDATE) = 5;
示例2: 以下对MONTH函数的调用返回相同的结果:
SELECT MONTH('2003-01-02-20.10.05.123456'), 
			MONTH('2003-01-02-12.10.05.123456-08:00'), 
			MONTH('2003-01-03-05.10.05.123456+09:00') 
		FROM SYSIBM.SYSDUMMY1;
对于SELECT语句中MONTH函数的每次调用,结果都是1。

当输入参数包含时区时,结果由输入值的UTC表示法决定。 在SELECT语句中,带有时区的字符串时间戳的表示形式都具有相同的UTC表示形式: 2003-01-02-20.10.05.123456。 UTC表示法中的月份部分为1。