githubEdit

Duration

The duration type handles time intervals using Go's time.Duration with special CBOR encoding.

Overview

Property
Value

Go Type

time.Duration / *time.Duration

Database Schema

duration / option<duration>

CBOR Encoding

Tag 14 with [seconds, nanoseconds]

Sortable

Yes

CBOR Encoding

Duration values are encoded with CBOR Tag 14 as a two-element array:

Tag 14: [total_seconds (int64), remaining_nanoseconds (int64)]

This provides:

  • Full nanosecond precision

  • Proper round-tripping with SurrealDB

  • Handling of empty arrays for optional fields

Definition

type Task struct {
    som.Node

    Duration    time.Duration   // Required
    Timeout     time.Duration   // Required
    GracePeriod *time.Duration  // Optional
}

Schema

Generated SurrealDB schema:

Filter Operations

Equality Operations

Set Membership

Comparison Operations

Component Extraction

Extract duration components as numeric filters:

Nil Operations (Pointer Types Only)

Zero Value Check

Sorting

Method Chaining

Duration filters support component extraction:

Common Patterns

Duration Ranges

Short vs Long Tasks

Timeout Validation

Complete Example

Filter Reference Table

Operation
Description
Returns

Equal(val)

Exact match

Bool filter

NotEqual(val)

Not equal

Bool filter

In(vals...)

Value in set

Bool filter

NotIn(vals...)

Value not in set

Bool filter

LessThan(val)

Strictly less

Bool filter

LessThanEqual(val)

Less or equal

Bool filter

GreaterThan(val)

Strictly greater

Bool filter

GreaterThanEqual(val)

Greater or equal

Bool filter

Days()

Extract days

Numeric filter

Hours()

Extract hours

Numeric filter

Mins()

Extract minutes

Numeric filter

Secs()

Extract seconds

Numeric filter

Millis()

Extract milliseconds

Numeric filter

Micros()

Extract microseconds

Numeric filter

Nanos()

Extract nanoseconds

Numeric filter

Weeks()

Extract weeks

Numeric filter

Years()

Extract years

Numeric filter

Zero(bool)

Check zero

Bool filter

Truth()

To boolean

Bool filter

IsNil()

Is null (ptr)

Bool filter

IsNotNil()

Not null (ptr)

Bool filter

Last updated