Duration

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

Value methods

.isDuration()

Checks if the value is a duration.

Method Syntax

value.isDuration()

Returns: boolean

.getDuration()

Returns the duration as a java.time.Duration.

Method Syntax

value.getDuration()

Returns: java.time.Duration

POJO mapping

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;

Example

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();
}
}

See Also