The Issue
In SuiteQL timestamp conversions using TO_TIMESTAMP
and TO_TIMESTAMP_TZ
can present challenges when dealing with fractional seconds.
-
TO_TIMESTAMP
: This function is designed for basic timestamp conversions but may fail when fractional seconds are present with more than three digits. -
TO_TIMESTAMP_TZ
: This function is intended for handling time zone-aware timestamps. However, it also faces issues with fractional seconds, especially when precision exceeds three digits.
The root cause of these issues lies in the partial or undocumented support for fractional seconds and time zone parsing within SuiteQL, which can result in parsing errors or unexpected behaviors when handling timestamps with varying formats.
Solution
-
For Non-Timezone-Aware Timestamps:
UseTO_TIMESTAMP
when time zone information is irrelevant. Ensure the timestamp string is free of fractional seconds or truncated to three digits to avoid errors.Example:
TO_TIMESTAMP('2025-10-05 14:48:00', 'YYYY-MM-DD HH24:MI:SS')
-
For Timezone-Aware Timestamps:
When working with time zone data, useTO_TIMESTAMP_TZ
. Ensure the string includes a correctly formatted time zone (e.g.,+00:00
orUTC
). Additionally, avoid fractional seconds exceeding three digits.Example:
TO_TIMESTAMP_TZ('2025-10-05 14:48:00 +00:00', 'YYYY-MM-DD HH24:MI:SS TZH:TZM')
-
Handling UTC Data:
For UTC-based data, append aZ
to the timestamp to indicate that the time is in UTC. This ensures proper conversion without any need for additional time zone offsets.Example:
TO_TIMESTAMP_TZ('2025-10-05 14:48:00 Z', 'YYYY-MM-DD HH24:MI:SS TZH:TZM')