If you specify an AT clause for a TIMESTAMP[(n)] without time zone target data type, an error is returned.
If you specify an AT clause for a TIMESTAMP[(n)] WITH TIME ZONE target data type, the following table shows the result of the CAST function or Teradata conversion based on the various options specified. If the target precision is higher than the source precision, trailing zeros are added in the result to adjust the precision. If the target precision is lower than the source precision, an error is returned.
IF you specify... | AND the data type of timestamp_expression is... | THEN... |
---|---|---|
AT LOCAL | with or without TIME ZONE | the result is formed from the timestamp portion of the source timestamp_expression (in UTC) with the result time zone displacement based on the current session time zone. If the source data type is without time zone, this is the same as not specifying the AT clause. |
AT SOURCE (where SOURCE is a keyword and not a column reference) |
WITH TIME ZONE | the result is formed from the timestamp portion of the source timestamp_expression (in UTC) and the time zone displacement associated with timestamp_expression. Note that this is the same as not specifying the AT clause. |
AT SOURCE (where SOURCE is a keyword and not a column reference) |
without TIME ZONE | an error is returned. |
AT SOURCE TIME ZONE | WITH TIME ZONE | the result is formed from the timestamp portion of the source timestamp_expression (in UTC) and the time zone displacement associated with timestamp_expression. Note that this is the same as not specifying the AT clause. |
AT SOURCE TIME ZONE | without TIME ZONE | an error is returned. |
AT expression or AT TIME ZONE expression |
with or without TIME ZONE | the result is formed from the timestamp portion of the source timestamp_expression (in UTC) and the time zone displacement defined by expression. |
AT time_zone_string or AT TIME ZONE time_zone_string |
with or without TIME ZONE | the result is formed from the timestamp portion of the source timestamp_expression (in UTC) and the time zone displacement based on time_zone_string. The time zone displacement is determined based on time_zone_string and the TIMESTAMP value of timestamp_expression at UTC. |