DAY 标量函数 (scalar function)

DAY函数用于返回数值中的日期部分。

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

该模式是 SYSIBM。

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

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

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

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

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

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

  • 如果参数是日期、时间戳或它们的字符串表示形式,则结果为该值的日期部分,即介于 1-31 之间的整数。
  • 如果参数是日期或时间戳,则结果为该值中的日期部分,即介于-99和99之间的整数。 非零结果与参数具有相同的符号。
  • 更改开始如果参数包含时区 ,则结果为以UTC表示的日期部分。更改结束

DAY的示例

示例 1
将整数型主机变量DAYVAR设置为示例表 DSN8C10.EMP 中员工140的入职日期。
   EXEC SQL SELECT DAY(HIREDATE)
     INTO :DAYVAR
     FROM DSN8C10.EMP
     WHERE EMPNO = '000140';
示例 2
假设 DATE1 和 DATE2 是同一张表中的日期列。 假设表中某一行中, DATE1 和 DATE2 分别代表2000年1月15日和1999年12月31日的日期。 然后,对于给定的行,以下函数调用返回15。
   DAY(DATE1 - DATE2)
示例 3
以下DAY函数的调用都返回相同的结果,即2。 当输入参数包含时区时,结果由输入值的UTC表示法决定。 在示例 SELECT 语句中,带有时区的字符串表示法的时间戳都具有相同的 UTC 表示法: 2003-01-02-20.00.00。 世界协调时(UTC)表示法中的日间部分为2。
 SELECT DAY('2003-01-02-20.00.00'), 
			DAY('2003-01-02-12.00.00-08:00'), 
			DAY('2003-01-03-05.00.00+09:00') 
	FROM SYSIBM.SYSDUMMY1;