TIMESTAMP_TZ标量函数

TIMESTAMP_TZ函数根据输入参数返回一个带有时区的TIMESTAMP值。

阅读语法图跳过可视化语法图TIMESTAMP_TZ( expression-1, expression-2)

该模式是 SYSIBM。

expression-1
返回以下内置数据类型之一的值的表达式:
  • 无时区的时间戳
  • 带时区的时间戳
  • 字符串
  • 图形字符串
如果 expression-1 是字符串或图形字符串,则必须符合以下规则:
  • 它不能是CLOB或DBCLOB
  • 其值必须是一个不含时区的有效时间戳字符串表示形式,或者是一个含时区值的时间戳
  • 实际长度不得超过255字节
有关日期时间值的字符串表示形式的有效格式,请参阅日期时间值的字符串表示形式

如果指定了, expression-2 指定了,则 expression-1 必须是一个不含时区的时间戳,或者是一个不含时区的字符串表示形式。

expression-2
返回字符串或图形字符串的表达式。

更改开始如果 expression-2 是字符串或图形字符串,则它不能是 CLOB 或 DBCLOB,并且它的值必须是时区的有效字符串表示形式,格式为 '± th : tm ',值范围从 -24:00 到 +24:00,其中 th 表示时区小时, tm 表示时区分钟。更改结束

该函数的结果等同于调用CAST规范,如下表所示:

表 1. TIMESTAMP_TZ函数和等效的CAST规范
TIMESTAMP_TZ 函数语法 CAST 规范语法等效
TIMESTAMP_TZ(timestamp_wo_tz) CAST(timestamp_wo_tz AS TIMESTAMP WITH TIME ZONE)
TIMESTAMP_TZ(timestamp_wo_tz, n) CAST(timestamp_wo_tz AS TIMESTAMP(n) WITH TIME ZONE)
TIMESTAMP_TZ(timestamp_wo_tz, timezone) CAST(CONCAT(VARCHAR(timestamp_wo_tz, timezone) AS TIMESTAMP WITH TIME ZONE)
TIMESTAMP_TZ(timestamp_wo_tz, timezone, n) CAST(CONCAT(VARCHAR(timestamp_wo_tz, timezone) AS TIMESTAMP(n) WITH TIME ZONE)
TIMESTAMP_TZ(timestamp_w_tz) CAST(timestamp_w_tz AS TIMESTAMP WITH TIME ZONE)
TIMESTAMP_TZ(timestamp_w_tz, n) CAST(timestamp_w_tz AS TIMESTAMP(n) WITH TIME ZONE)
TIMESTAMP_TZ(timestamp_w_tz, timezone) 不适用
TIMESTAMP_TZ(timestamp_w_tz, timezone, n) 不适用
时间戳_无_tz
不含时区的时间戳。
时间戳_w_tz
带有时区值的时间戳。
时区
一个时区值。
n
精确值。

当时间戳的字符串表示形式是单字节字符集(SBCS),且CCSID与SBCS数据的默认CCSID不同时,该值在解释并转换为时间戳值之前,会转换为SBCS数据的默认CCSID。

注意

语法替代方案:
如果只指定了一个参数,则应使用CAST规范以确保最大的可移植性。 更多信息,请参阅 CAST规范

当TIMESTAMP_TZ同时指定 expression-1expression-2 时,可以将FROM_TZ指定为TIMESTAMP_TZ的同义词。

示例

示例 1:
假设 TIMES 是一个主机变量,其值为 2008-02-29-20.00.00.000000 , TZ 是一个主机变量,其值为 -3 :00。 将TIMESTZ 的值转换为带时区的时间戳。
SET :TIMESZ = TIMESTAMP_TZ(:TIMES, :TZ);
主变量TIMESZ 的值设置为 2008-02-29-20.00.00.000000 -03:00,表示带有时区的时间戳。