quarter()#

relationalai.std.dates
#quarter(date: date | datetime | Producer, tz: str = "UTC") -> Expression

Extracts the quarter of the year from a Date or DateTime value. If date is a Python date or datetime object, the tz parameter is ignored. Must be called in a rule or query context.

Parameters#

NameTypeDescription
datedate or datetime or ProducerThe Date or DateTime value from which to extract the quarter.
tzstrOptional timezone component for DateTime values (default is “UTC”). Ignored if date is a Python date or datetime object.

Returns#

An Expression that produces the quarter of the year of the given Date or DateTime value.

Raises#

TypeError if the date parameter is not a date, datetime, or Producer object.

Example#

Use quarter() to extract the quarter of the year from a Date value:

#import relationalai as rai
from relationalai.std import alias
from relationalai.std.dates import quarter, date

# Create a model named "people" with a `Person` type.
model = rai.Model("people")
Person = model.Type("Person")

# Add a person with a birth date.
with model.rule():
    Person.add(name="Alice", birth_date=date(1990, 5, 23))

# Extract the quarter from birth_date.
with model.query() as select:
    person = Person()
    birth_quarter = quarter(person.birth_date)
    response = select(person.name, alias(birth_quarter, "birth_quarter"))

print(response.results)
# Output:
#     name  birth_quarter
# 0  Alice              2

You can also use quarter() to extract the quarter of the year from a DateTime value:

#import relationalai as rai
from relationalai.std import alias
from relationalai.std.dates import quarter, datetime

# Create a model named "people" with a `Person` type.
model = rai.Model("people")
Person = model.Type("Person")

# Add a person with a birth datetime.
with model.rule():
    Person.add(
        name="Bob",
        born_at=datetime(1985, 8, 15, 15, 45, 0, tz="UTC")
    )

# Extract the quarter from `born_at`.
with model.query() as select:
    person = Person()
    birth_quarter = quarter(person.born_at)
    response = select(person.name, alias(birth_quarter, "birth_quarter"))

print(response.results)
# Output:
#   name  birth_quarter
# 0  Bob              3

See Also#