fix: normalize local postgres date columns

This commit is contained in:
Jesse_Chen
2026-08-07 13:31:40 +08:00
parent 3f2b0243df
commit 3831b5bd9f
2 changed files with 24 additions and 3 deletions
@@ -128,6 +128,16 @@ function databaseValue(type: string | undefined, value: unknown): unknown {
return value;
}
function queryValue(type: string | undefined, value: unknown): unknown {
if (type !== "date" || !(value instanceof Date)) return value;
// pg parses DATE at local midnight; UTC formatting can shift the calendar day.
return [
String(value.getFullYear()).padStart(4, "0"),
String(value.getMonth() + 1).padStart(2, "0"),
String(value.getDate()).padStart(2, "0"),
].join("-");
}
class LocalPostgresQueryBuilder implements PromiseLike<QueryResult> {
private selectedColumns: string[] | null = null;
private mutation: Mutation | null = null;
@@ -411,7 +421,14 @@ class LocalPostgresQueryBuilder implements PromiseLike<QueryResult> {
}
const result = await client.query(sql, parameters);
const rows = result.rows;
const rows = result.rows.map((row) =>
Object.fromEntries(
Object.entries(row).map(([column, value]) => [
column,
queryValue(types.get(column), value),
]),
),
);
let data: unknown = this.selectedColumns ? rows : null;
if (this.cardinality !== "many") {
if (