DAY 标量函数 (scalar function)
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;
