Datetime functions¶
Postgres / Cockroach¶
Extract¶
- class piccolo.query.functions.datetime.Extract(identifier: Date | Time | Timestamp | Timestamptz | QueryString, datetime_component: Literal['century', 'day', 'decade', 'dow', 'doy', 'epoch', 'hour', 'isodow', 'isoyear', 'julian', 'microseconds', 'millennium', 'milliseconds', 'minute', 'month', 'quarter', 'second', 'timezone', 'timezone_hour', 'timezone_minute', 'week', 'year'], alias: str | None = None)¶
Note
This is for Postgres / Cockroach only.
Extract a date or time component from a
Date
/Time
/Timestamp
/Timestamptz
column. For example, getting the month from a timestamp:>>> from piccolo.query.functions import Extract >>> await Concert.select( ... Extract(Concert.starts, "month", alias="start_month") ... ) [{"start_month": 12}]
- Parameters:
identifier – Identifies the column.
datetime_component – The date or time component to extract from the column.
SQLite¶
Strftime¶
- class piccolo.query.functions.datetime.Strftime(identifier: Date | Time | Timestamp | Timestamptz | QueryString, datetime_format: str, alias: str | None = None)¶
Note
This is for SQLite only.
Format a datetime value. For example:
>>> from piccolo.query.functions import Strftime >>> await Concert.select( ... Strftime(Concert.starts, "%Y", alias="start_year") ... ) [{"start_month": "2024"}]
- Parameters:
identifier – Identifies the column.
datetime_format – A string describing the output format (see SQLite’s documentation for more info).
Database agnostic¶
These convenience functions work consistently across database engines.
They all work very similarly, for example:
>>> from piccolo.query.functions import Year
>>> await Concert.select(
... Year(Concert.starts, alias="start_year")
... )
[{"start_year": 2024}]