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