- Categories:
CONVERT_ TIMEZONE¶
Converts a timestamp to another time zone.
Syntax¶
Arguments¶
source_tzString specifying the time zone for the input timestamp. Required for timestamps with no time zone (that is, TIMESTAMP_NTZ).
target_tzString specifying the time zone to which the input timestamp is converted.
source_timestamp_ntzFor the 3-argument version, string specifying the timestamp to convert (must be TIMESTAMP_NTZ).
source_timestampFor the 2-argument version, the timestamp to convert. Can be any timestamp variant (TIMESTAMP_LTZ, TIMESTAMP_NTZ, or TIMESTAMP_TZ) or a DATE value. For how the source time zone is determined for each of these types, see the usage notes below.
Returns¶
Returns a value of type TIMESTAMP_NTZ, TIMESTAMP_TZ, or NULL:
- For the 3-argument version, returns a value of type TIMESTAMP_NTZ.
- For the 2-argument version, returns a value of type TIMESTAMP_TZ.
- If any argument is NULL, returns NULL.
Usage notes¶
-
The display format for timestamps in the output is determined by the timestamp output format for the current session and the data type of the returned timestamp value.
-
For the 3-argument version, the “wallclock” time in the result represents the same moment in time as the input “wallclock” in the input time zone, but in the target time zone.
-
For the 2-argument version, the source time zone is determined by the data type of the
source_timestampargument:- TIMESTAMP_TZ: The time zone is taken from the value itself.
- TIMESTAMP_LTZ: The time zone is the current session time zone (set by the TIMEZONE parameter).
- TIMESTAMP_NTZ: The value has no time zone, so it’s interpreted as a “wallclock” time in the current session time zone, and that session time zone is used as the source.
- DATE: The value is cast to TIMESTAMP_NTZ with the time set to midnight (
00:00:00), and then handled the same way as TIMESTAMP_NTZ (the current session time zone is used as the source).
-
For
source_tzandtarget_tz, you can specify a time zone name or a link name from release 2025b of the IANA Time Zone Database (for example,America/Los_Angeles,Europe/London,UTC,Etc/GMT, and so on).Note
- Time zone names are case-sensitive and must be enclosed in single quotes (e.g.
'UTC'). - Snowflake does not support the majority of timezone abbreviations (e.g.
PDT,EST, etc.) because a given abbreviation might refer to one of several different time zones. For example,CSTmight refer to Central Standard Time in North America (UTC-6), Cuba Standard Time (UTC-5), and China Standard Time (UTC+8).
- Time zone names are case-sensitive and must be enclosed in single quotes (e.g.
Examples¶
To use the default timestamp output format for the timestamps returned in the examples, unset the TIMESTAMP_OUTPUT_FORMAT parameter in the current session:
Examples that specify a source time zone¶
The following examples use the 3-argument version of the CONVERT_TIMEZONE function and specify a source_tz
value. These examples return TIMESTAMP_NTZ values.
Convert a “wallclock” time in Los Angeles to the matching “wallclock” time in New York:
Convert a “wallclock” time in Warsaw to the matching “wallclock” time in UTC:
Examples that do not specify a source time zone¶
The following examples use the 2-argument version of the CONVERT_TIMEZONE function. These examples return
TIMESTAMP_TZ values. Therefore, the returned values include an offset that shows the difference between
the timestamp’s time zone and Coordinated Universal Time (UTC). For example, the America/Los_Angeles
time zone has an offset of -0700 to show that it is seven hours behind UTC.
Convert a string specifying a TIMESTAMP_TZ value to a different time zone:
Show the current “wallclock” time in different time zones:
Example with TIMESTAMP_ LTZ input¶
The following example uses the 2-argument version with a TIMESTAMP_LTZ value. A TIMESTAMP_LTZ value is
interpreted in the current session time zone, so that session time zone is used as the source. The example
sets the session time zone to America/Los_Angeles first:
Convert a TIMESTAMP_LTZ value to UTC. The input 09:00:00 is interpreted in the session time zone
(America/Los_Angeles, which is seven hours behind UTC), so the result is offset accordingly:
Examples with TIMESTAMP_ NTZ and DATE input¶
The following examples use the 2-argument version with a TIMESTAMP_NTZ value and a DATE value. Because
neither type carries a time zone, the current session time zone is used as the source time zone. These
examples set the session time zone to America/Los_Angeles first:
Convert a TIMESTAMP_NTZ value to UTC. The input is interpreted as a “wallclock” time in the session
time zone (America/Los_Angeles), so the result is offset accordingly:
Convert a DATE value to UTC. The DATE is cast to TIMESTAMP_NTZ at midnight in the session time zone
(America/Los_Angeles), then converted: