This is tricky, but perfectly doable ;-) SELECT BaseDateTime, DateTime USING TO_TIMESTAMP(EXTRACT_TOKEN(EXTRACT_TOKEN(Text, 1, '['), 0, ' '), 'dd/MMM/yyyy:hh:mm:ss') AS BaseDateTime, SUBSTR(Text, SUB(INDEX_OF(Text, ']'), 5), 5) AS StrOffset, -- Offset including sign CASE SUBSTR(StrOffset, 0, 1) -- Switch...