date.fromordinal()#

relationalai.std.dates
#date.fromordinal(ordinal: int | Producer) -> Expression

Constructs a Date value from a Gregorian proleptic ordinal number. Must be called in a rule or query context. A Gregorian proleptic ordinal number is the number of days since January 1, 0001 (day 1). To construct a DateTime value, use the datetime.fromordinal function.

Parameters#

NameTypeDescription
ordinalint or ProducerThe Gregorian proleptic ordinal number representing the date.

Returns#

An Expression that produces Date values.

Example#

Use date.fromordinal() to construct a Date value from a Gregorian proleptic ordinal number:

#import relationalai as rai
from relationalai.std.dates import date

# Create a model named "events" with an `Event` type.
model = rai.Model("events")
Event = model.Type("Event")

# Add an event with a start date using an ordinal number.
with model.rule():
    # The event starts on January 1, 2021 (ordinal 737791).
    Event.add(
        name="Conference",
        start_date=date.fromordinal(737791)
    )

with model.query() as select:
    event = Event()
    response = select(event.name, event.start_date)

print(response.results)
# Output:
#          name start_date
# 0  Conference 2021-01-01

You can also use object property values as ordinal numbers:

#import relationalai as rai
from relationalai.std.dates import date

# Create a model named "events" with an `Event` type.
model = rai.Model("events")
Event = model.Type("Event")

# Add events with ordinal start dates.
with model.rule():
    Event.add(
        name="Conference",
        start_ordinal=737791
    )
    Event.add(
        name="Workshop",
        start_ordinal=737792
    )

# Create a `start_date` property using the `date.fromordinal()` constructor.
with model.rule():
    event = Event()
    event.set(
        start_date=date.fromordinal(event.start_ordinal)
    )

with model.query() as select:
    event = Event()
    response = select(event.name, event.start_date)

print(response.results)
# Output:
#          name start_date
# 0  Conference 2021-01-01
# 1    Workshop 2021-01-02

See Also#