Skip to main content

Date Modifiers

Overview

The date or time values datetime functions in StackQL can be followed by zero or more modifiers that alter the date and/or time. Each modifier is a transformation that is applied to the time value to its left. Modifiers are applied in order from left to right. The available modifiers are as follows:

ModifierDescription
NNN day(s)Add ±NNN days to a date and time
NNN hour(s)Add ±NNN hours to a date and time
NNN minute(s)Add ±NNN minutes to a date and time
NNN[.NNNN] second(s)Add ±NNN seconds to/from a date and time
NNN month(s)Add ±NNN months to a date and time
NNN year(s)Add ±NNN year to a date and time
start of monthBackward to the beginning of the month
start of yearBackward to the beginning of the year
start of dayBackward to the beginning of the day
weekday NAdvance a date forward to the next date where the weekday number is N
localtimeReturn local time
utcReturn UTC time
unixepochUnix time

Examples

Return the current date and time using the now modifier

SELECT name, date('now') as date, time('now') as time
FROM google.storage.buckets WHERE project = 'stackql';

Convert UTC to localtime using the localtime modifier

SELECT name, timeCreated,
datetime(timeCreated, 'localtime') as local_time_created
FROM google.storage.buckets WHERE project = 'stackql';

Covert datetime to UTC

SELECT name, timeCreated,
datetime('now', 'utc') as now_utc
FROM google.storage.buckets WHERE project = 'stackql';

Calculate a date relative to another date

SELECT name, timeCreated,
datetime(timeCreated, '+24 hours') as a_day_later
FROM google.storage.buckets WHERE project = 'stackql';

Get the next specified weekday after a given date

SELECT name, timeCreated,
datetime(timeCreated, 'weekday 0') as following_sunday
FROM google.storage.buckets WHERE project = 'stackql';

Get the start of the month for a given date

SELECT name, timeCreated,
datetime(timeCreated, 'start of month') as start_of_month
FROM google.storage.buckets WHERE project = 'stackql';

Covert a Unix timestamp to a datetime

SELECT datetime(1576417943, 'unixepoch') as date_from_ts
FROM google.storage.buckets WHERE project = 'stackql';
tip

To covert a datetime to a Unix epoch timestamp see STRFTIME. To calculate differences between two datetime objects see STRFTIME or JULIANDAY.