• Start

API Reference

/

Values

Duration

Duration type with nanosecond precision and unit conversion properties.

A Duration stores a time duration with nanosecond precision. It supports parsing from human-readable strings (including compound formats like "1h30m") and provides properties for converting to common time units.

Duration is a Python dataclass.

Import
from surrealdb import Duration
FieldTypeDescription
elapsedintThe duration in nanoseconds.
Syntax
Duration(elapsed)

Parameter

Type

Description

elapsedint

The duration in nanoseconds.

d = Duration(5_000_000_000)
print(d.seconds)  # 5.0

Parses a duration from a string or integer value. String values support SurrealDB duration syntax, including compound durations.

Syntax
Duration.parse(value, nanoseconds=0)

Parameter

Type

Description

valuestr | int

A duration string (e.g.

"1h30m"

,

"500ms"

) or an integer in nanoseconds.

nanosecondsint

Additional nanoseconds to add. Defaults to

0

.

Returns: Duration

d = Duration.parse("1h30m")
print(d.minutes)  # 90.0

d = Duration.parse("500ms")
print(d.milliseconds)  # 500.0

d = Duration.parse("2d12h")
print(d.hours)  # 60.0

d = Duration.parse(1_000_000_000)
print(d.seconds)  # 1.0

All unit properties return a float.

PropertyTypeDescription
nanosecondsfloatDuration in nanoseconds.
microsecondsfloatDuration in microseconds.
millisecondsfloatDuration in milliseconds.
secondsfloatDuration in seconds.
minutesfloatDuration in minutes.
hoursfloatDuration in hours.
daysfloatDuration in days.
weeksfloatDuration in weeks.
yearsfloatDuration in years (365-day).
d = Duration.parse("2h30m")
print(d.hours)    # 2.5
print(d.minutes)  # 150.0
print(d.seconds)  # 9000.0

Returns the duration as a human-readable string.

Syntax
duration.to_string()

Returns: str

d = Duration.parse("1h30m")
print(d.to_string())  # "1h30m"

Returns the duration as a compact list of integer values.

Syntax
duration.to_compact()

Returns: list[int]

d = Duration.parse("1h30m")
print(d.to_compact())
from surrealdb import Surreal, Duration

db = Surreal("ws://localhost:8000")
db.connect()
db.use("my_ns", "my_db")
db.signin({"username": "root", "password": "root"})

db.create("tasks", {
    "title": "Backup",
    "interval": Duration.parse("6h"),
})

Was this page helpful?