# `QuackDB.TimeWithTimeZone`
[🔗](https://github.com/elixir-vibe/quackdb/blob/main/lib/quack_db/time_with_time_zone.ex#L1)

DuckDB `TIME WITH TIME ZONE` value.

DuckDB stores `TIME WITH TIME ZONE` as microseconds since midnight packed with
a timezone offset in seconds. This struct exposes the decoded `Time` and UTC
offset while preserving conversion to and from DuckDB's packed integer.

# `t`

```elixir
@type t() :: %QuackDB.TimeWithTimeZone{time: Time.t(), utc_offset: integer()}
```

# `from_bits`

```elixir
@spec from_bits(integer()) :: t()
```

Decodes DuckDB's packed `TIME WITH TIME ZONE` integer.

# `new`

```elixir
@spec new(Time.t(), integer()) :: t()
```

Builds a `TIME WITH TIME ZONE` value from time and UTC offset seconds.

# `to_bits`

```elixir
@spec to_bits(t()) :: integer()
```

Encodes the value into DuckDB's packed `TIME WITH TIME ZONE` integer.

# `to_iso8601`

```elixir
@spec to_iso8601(t()) :: String.t()
```

Formats the value as an ISO-like time with numeric UTC offset.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
