Datetimes
SurrealDB has native support for dates and times with nanosecond precision.
Dates
SurrealDB automatically parses and understands dates which are written as strings in the SurrealQL language. Dates must be formatted in an ISO-8601 format. Datetimes which are specified without the time part, will automatically default to the beginning of the date.
CREATE person SET birthday = "1990-06-22";
Times
SurrealDB automatically parses and understands times which are written as strings in the SurrealQL language. Times must also be formatted in an ISO-8601 format.
CREATE event SET time = "2022-07-03T07:18:52Z";
SurrealDB handles all datetimes with nanosecond precision.
CREATE event SET time = "2022-07-03T07:18:52.841147Z";
SurrealDB handles all timezones, and automatically converts and stores datetimes as a UTC date.
CREATE event SET time = "2022-07-03T07:18:52.841147+02:00";
Datetime comparison
Datetimes can be compared with each other using the advanced SurrealDB operators.
SELECT * FROM "2022-07-03T07:18:52Z" > "2022-01-03T01:43:78Z";
Datetimes and durations
Durations can be used to modify and alter datetimes.
CREATE event SET time = "2022-07-03T07:18:52Z" + 2w;
Multi-part durations can also be used to modify datetimes.
CREATE event SET time = "2022-07-03T07:18:52.841147Z" + 1h30m20s1350ms;
Next steps
You've now seen how to store, modify, and handle dates and times in SurrealDB. For more advanced functionality, take a look at the time functions, which enable extracting, altering, rounding, and grouping datetimes into specific time intervals.