Skip to content

API Reference

/

Data types

Duration

SurrealDB duration values map to Java's java.time.Duration. The SDK handles conversion automatically when deserialising query results into Value objects or POJOs.

Checks if the value is a duration.

Method Syntax
value.isDuration()

Returns: boolean

Returns the duration as a java.time.Duration.

Method Syntax
value.getDuration()

Returns: java.time.Duration

When using typed methods, duration fields in your POJO should be declared as Duration.

import java.time.Duration;

public class Task {
    public RecordId id;
    public String name;
    public Duration timeout;

    public Task() {}
}

Optional<Task> task = db.select(Task.class, new RecordId("task", "build"));
Duration timeout = task.get().timeout;
Working with duration values
import com.surrealdb.Surreal;
import com.surrealdb.Response;
import com.surrealdb.Value;
import com.surrealdb.signin.RootCredential;
import java.time.Duration;

try (Surreal db = new Surreal()) {
    db.connect("ws://localhost:8000");
    db.useNs("surrealdb").useDb("docs");
    db.signin(new RootCredential("root", "root"));

    Response response = db.query("RETURN 1h30m");
    Value result = response.take(0);

    if (result.isDuration()) {
        Duration d = result.getDuration();
    }
}

Was this page helpful?