// Extract functions similar to date_part
extract(field from date)
extract(field from time)
extract(field from timestamp)
extract(field from timestamptz)
extract(field from interval)
extract(field from intervalday)
extract(field from intervalyear)

// In the below functions first 'text' param represents the string to be converted to date type
// Second 'text' param represents the format its in
to_date(text, text)
to_time(text, text)
to_timestamp(text, text)
to_timestamptz(text, text)

Seems to me getQueryStartTime() should return a TimestampTZ value, which is set up by the root Drill fragment. Then, all other drill bits will get the identical TimestampTZ value, and convert into each individual's timezone. That will ensure different drill bits will get the same value, even though they may have different time zones.

Here, current_time and localtime are processed as an identical function. However, in Postgre, they are different:
"
CURRENT_TIME and CURRENT_TIMESTAMP deliver values with time zone; LOCALTIME and LOCALTIMESTAMP deliver values without time zone.
"