TIMESTAMP_TZ标量函数
TIMESTAMP_TZ函数根据输入参数返回一个带有时区的TIMESTAMP值。
该模式是 SYSIBM。
- expression-1
- 返回以下内置数据类型之一的值的表达式:
- 无时区的时间戳
- 带时区的时间戳
- 字符串
- 图形字符串
- 它不能是CLOB或DBCLOB
- 其值必须是一个不含时区的有效时间戳字符串表示形式,或者是一个含时区值的时间戳
- 实际长度不得超过255字节
如果指定了, expression-2 指定了,则 expression-1 必须是一个不含时区的时间戳,或者是一个不含时区的字符串表示形式。
- expression-2
- 返回字符串或图形字符串的表达式。
如果 expression-2 是字符串或图形字符串,则它不能是 CLOB 或 DBCLOB,并且它的值必须是时区的有效字符串表示形式,格式为 '± th : tm ',值范围从 -24:00 到 +24:00,其中 th 表示时区小时, tm 表示时区分钟。
该函数的结果等同于调用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) |
不适用 |
|
|
当时间戳的字符串表示形式是单字节字符集(SBCS),且CCSID与SBCS数据的默认CCSID不同时,该值在解释并转换为时间戳值之前,会转换为SBCS数据的默认CCSID。
注意
- 语法替代方案:
- 如果只指定了一个参数,则应使用CAST规范以确保最大的可移植性。 更多信息,请参阅 CAST规范
当TIMESTAMP_TZ同时指定 expression-1 和 expression-2 时,可以将FROM_TZ指定为TIMESTAMP_TZ的同义词。
示例
- 示例 1:
- 假设 TIMES 是一个主机变量,其值为 2008-02-29-20.00.00.000000 , TZ 是一个主机变量,其值为 -3 :00。 将TIMES 和 TZ 的值转换为带时区的时间戳。
主变量TIMESZ 的值设置为 2008-02-29-20.00.00.000000 -03:00,表示带有时区的时间戳。SET :TIMESZ = TIMESTAMP_TZ(:TIMES, :TZ);
