EXTRACT 标量函数 (scalar function)

EXTRACT函数根据其参数返回日期或时间戳的一部分。

提取日期值:

阅读语法图跳过可视化语法图EXTRACT(YEARMONTHDAYFROM日期表达式时间戳表达式)

提取时间值:

阅读语法图跳过可视化语法图EXTRACT(HOURMINUTESECONDFROM时间表达时间戳表达式)

提取时区值:

阅读语法图跳过可视化语法图EXTRACT(HOURMINUTESECONDTIMEZONE_HOURTIMEZONE_MINUTEFROM日期表达式时间表达时间戳表达式)

该模式是 SYSIBM。

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

提取日期值
指定返回日期表达式时间戳表达式的年份部分。 结果与YEAR标量函数相同。 更多信息,请参阅 YEAR标量函数
指定返回日期表达式时间戳表达式的月份部分。 结果与 MONTH 标量函数相同。 更多信息,请参阅 MONTH 标量函数
DAY
指定返回日期表达式时间戳表达式的日期部分。 结果与DAY标量函数相同。 更多信息,请参阅 DAY标量函数
日期表达式
返回内置日期或内置字符串数据类型的值的表达式。

如果日期表达式是一个字符串或图形字符串,则它不能是CLOB或DBCLOB,其值必须是一个有效的日期字符串或图形字符串表示形式。 日期字符串表示的有效格式,请参阅日期时间值的字符串表示

时间戳表达式
返回内置时间戳或内置字符串数据类型值的表达式。

如果时间戳表达式是一个字符串或图形字符串,则它不能是CLOB或DBCLOB,其值必须是一个有效的时间戳字符串或图形字符串表示。 有关时间戳字符串表示的有效格式,请参阅日期时间值的字符串表示

提取时间值
HOUR
指定返回时间表达式时间戳表达式中的小时部分。 结果与标量函数HOUR相同。 更多信息,请参阅 HOUR标量函数
分钟
指定返回时间表达式时间戳表达式的最小部分。 结果与MINUTE标量函数相同。 更多信息,请参阅 MINUTE标量函数
SECOND
指定返回时间表达式时间戳表达式的第二部分。 结果与SECOND标量函数完全相同,其精度和范围取决于时间表达式时间戳表达式的类型。 更多信息,请参阅第二标量函数
时间表达
返回内置时间或内置字符串数据类型值的表达式。

如果时间表达式是一个字符串或图形字符串,则它不能是CLOB或DBCLOB,其值必须是一个有效的时间字符串表示形式。 有关时间字符串表示的有效格式,请参阅日期时间值的字符串表示

时间戳表达式
返回内置时间戳或内置字符串数据类型值的表达式。

如果时间戳表达式是一个字符串或图形字符串,则它不能是CLOB或DBCLOB,其值必须是一个时间戳的有效字符串表示形式。 有关时间戳字符串表示的有效格式,请参阅日期时间值的字符串表示

提取时区值
TIMEZONE_HOUR
指定返回时间戳值时区中的小时部分。 仅当第二个参数为时间戳表达式时间戳表达式包含时区时,才能指定 TIMEZONE_HOUR。
TIMEZONE_MINUTE
指定返回时间戳值时区中的分钟部分。 仅当第二个参数为时间戳表达式时间戳表达式包含时区时,才能指定 TIMEZONE_MINUTE。

的价值观 TIMEZONE_HOURTIMEZONE_MINUTE 要么都为非负数,要么都为非正数。

如果时间戳表达式参数包含时区,则结果由日期时间值的 UTC 表示法确定。

函数结果的数据类型取决于指定的日期时间值的组成部分:

  • 如果指定了以下条件之一,则结果为INTEGER:
    • DAY
    • HOUR
    • 分钟
    • TIMEZONE_HOUR
    • TIMEZONE_MINUTE
  • 如果使用 TIMESTAMP( p ) 值指定 SECOND,则结果为 DECIMAL(2+ p, p ),其中 p 是秒的小数部分精度。
  • 如果SECOND指定了TIME值或TIME或时间戳的字符串表示形式,则结果为DECIMAL(8,6)。 小数位包含小数秒。
示例 1:
假设列PRSTDATE的内部值等于2010-12-25。 以下语句返回值12:
   SELECT EXTRACT(MONTH FROM PRSTDATE) 
     FROM PROJECT;
示例 2:
更改开始假设宿主变量 PRSTSZ 的值为 2008-02-29-20.00.00.000000-08.30:
SELECT EXTRACT(HOUR FROM :PRSTSZ) FROM PROJECT;
SELECT语句返回值4,即输入的UTC时间日期值的时间。
若要返回与输入值相同的小时值,请在使用EXTRACT函数前将值转换为不带时区的TIMESTAMP:
SELECT EXTRACT(HOUR FROM CAST (:PRSTSZ AS TIMESTAMP ) ) FROM PROJECT;
SELECT语句返回值20,即主机变量中最初以字符串形式表示的小时数。
SELECT EXTRACT(TIMEZONE_HOUR FROM :PRSTSZ) FROM PROJECT;
SELECT语句返回的值为 -8。
SELECT EXTRACT(TIMEZONE_MINUTE FROM :PRSTSZ) FROM PROJECT;
SELECT语句返回的值为-30。
更改结束