code: def convert_tz(
      date_str: Union[str, Expression[str]],
      tz_from: Union[str, Expression[str]],
      tz_to: Union[str, Expression[str]],
  ) -> Expression:
      """
      Converts a datetime string date_str (with default ISO timestamp format 'yyyy-MM-dd HH:mm:ss')
      from time zone tz_from to time zone tz_to. The format of time zone should be either an
      abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as
      "GMT-08:00". E.g., convert_tz('1970-01-01 00:00:00', 'UTC', 'America/Los_Angeles') returns
      '1969-12-31 16:00:00'.
  
      Example:
      ::
  
          >>> tab.select(convert_tz(col('a'), 'PST', 'UTC'))
  
      :param date_str: the date time string
      :param tz_from: the original time zone
      :param tz_to: the target time zone
      :return: The formatted timestamp as string.
      """
      return _ternary_op("convertTz", date_str, tz_from, tz_to)
  
imports: from typing import Union
  from pyflink import add_version_doc
  from pyflink.java_gateway import get_gateway
  from pyflink.table.expression import Expression, _get_java_expression, TimePointUnit, JsonOnNull
  from pyflink.table.types import _to_java_data_type, DataType
  from pyflink.table.udf import UserDefinedFunctionWrapper
  from pyflink.util.java_utils import to_jarray, load_java_class
label_desc: Use image node_id 27 for calling a global function with example usage: convert_tz(date_str, tz_from, tz_to) and returns: _ternary_op