Date / Time Functions

44 functions for date arithmetic, part extraction, formatting, and timezone handling. The source column is always the implicit first input.

FunctionSyntaxParametersNotes
trim_timestamptrim_timestamp(column, unit)unit default DAY (also MONTH, YEAR).Truncates the time portion to the given unit.
date_adddate_add(column, amount, unit)amount default 0. unit default DAY (also WEEK, MONTH, YEAR, HOUR, MINUTE, SECOND).
date_subdate_sub(column, amount, unit)Same as date_add.Subtracts instead of adds.
to_timestampto_timestamp(column, format)format default yyyy-MM-dd HH:mm:ss.
unix_timestampunix_timestamp(column, format)format optional.Returns epoch seconds.
from_unixtimefrom_unixtime(column, format)format default yyyy-MM-dd HH:mm:ss.Inverse of unix_timestamp.
date_formatdate_format(column, format)format default yyyy-MM-dd.
extract_date_partextract_date_part(column, part)part default MONTH — one of YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, WEEK, ISO_WEEK, QUARTER, DAYOFWEEK, DAYOFYEAR, WEEK_OF_MONTH, DAY_OF_QUARTER, WEEK_OF_QUARTER, ISO_YEAR, MILLISECOND, MICROSECOND.General-purpose alternative to the dedicated per-part functions below.
date_diffdate_diff(startDate, endDate, unit)startDate, endDate — column refs. unitDAY / MONTH / YEAR.
current_datecurrent_date()None.
current_timecurrent_time()None.
current_timestampcurrent_timestamp()None.Aliases: sysdate, systimestamp, localtimestamp, now.
utc_timestamputc_timestamp()None.
add_monthsadd_months(column, months)months default 1.
months_betweenmonths_between(startDate, endDate)startDate, endDate — column refs.
last_daylast_day(column)None.Last day of the column's month.
next_daynext_day(column, weekday)weekday default MONDAY.
date_truncdate_trunc(column, unit)unit default DAY.
trunc_datetrunc_date(column, unit)unit default DAY.Alias family of date_trunc.
round_dateround_date(column, unit)unit default DAY.Rounds instead of truncating.
year / month / day / hour / minute / secondyear(column) etc.None.Single date/time part extractors.
week / iso_weekweek(column)None.ISO week number.
quarterquarter(column)None.
dayofweekdayofweek(column)None.
dayofyeardayofyear(column)None.
week_of_monthweek_of_month(column)None.
day_of_quarterday_of_quarter(column)None.
week_of_quarterweek_of_quarter(column)None.
iso_yeariso_year(column)None.
millisecondmillisecond(column)None.
microsecondmicrosecond(column)None.
ageage(column, endDate)endDate default CURRENT_DATE.Interval between column and endDate.
make_date / date_from_partsmake_date(year, month, day)year default 2024, month default 1, day default 1.Builds a date from literal/column parts.
make_time / time_from_partsmake_time(hour, minute, second)All default 0.
timestamp_from_partstimestamp_from_parts(year, month, day, hour, minute, second)Combines date and time part builders.
at_time_zoneat_time_zone(column, sourceTimezone, timezone)sourceTimezone, timezone default UTC.
from_tzfrom_tz(column, sourceTimezone, targetTimezone)Both default UTC.
leap_year_checkleap_year_check(column)None.Returns boolean.
business_daysbusiness_days(column, endDate)endDate default CURRENT_DATE.Counts weekdays between column and endDate.