diff --git a/src/util/interval.ts b/src/util/interval.ts index a601807b..597ccf97 100644 --- a/src/util/interval.ts +++ b/src/util/interval.ts @@ -46,8 +46,10 @@ export function toIntervalMonthDayNanoInt32Array(objects: Partial> BigInt(32)); + const ns = BigInt(nanoseconds); + // Convert to unsigned 32-bit integers to avoid precision loss + data[ai++] = Number(ns & BigInt(0xFFFFFFFF)) >>> 0; + data[ai++] = Number(ns >> BigInt(32)) >>> 0; } else { ai += 2; }