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:
| Modifier | Description |
|---|---|
| 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 month | Backward to the beginning of the month |
| start of year | Backward to the beginning of the year |
| start of day | Backward to the beginning of the day |
| weekday N | Advance a date forward to the next date where the weekday number is N |
| localtime | Return local time |
| utc | Return UTC time |
| unixepoch | Unix 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';