Bug Description
When running the query using sqlx, its output is different vs when the same query is run using postgersql CLI. Postgresql server, database are the same.
Minimal Reproduction
let out = sqlx::query!(
"
SELECT
date_trunc('day', '2024-05-09 01:00:00+03'::timestamptz) as foo,
date_trunc('day', '2024-05-09 16:22:19.553755+03'::timestamptz) as bar,
(
date_trunc('day', '2024-05-09 01:00:00+03'::timestamptz) =
date_trunc('day', '2024-05-09 16:22:19.553755+03'::timestamptz)
) as eq
"
)
.fetch_one(&state.db)
.await?;
dbg!(out);
Output:
out = Record {
foo: Some(
2024-05-08 0:00:00.0 +00:00:00,
),
bar: Some(
2024-05-09 0:00:00.0 +00:00:00,
),
eq: Some(
false,
),
}
If the same query is run against the same database on the same postgresql server using psql:
foo | bar | eq
------------------------+------------------------+----
2024-05-09 00:00:00+03 | 2024-05-09 00:00:00+03 | t
(1 row)
Interestingly enough, if AT TIME ZONE 'UTC' is applied to both timestamps before truncating, or UTC argument is supplied to date_trunc function, output will be the same between sqlx and psql.
Info
- SQLx version:
0.7.4
- SQLx features enabled:
postgres,time,uuid,runtime-tokio,rust_decimal
- Database server and version:
Postgresql 16.2
- Operating system:
Arch linux 6.8.9-zen1-2-zen
rustc --version: rustc 1.79.0-nightly (ab5bda1aa 2024-04-08)
Bug Description
When running the query using sqlx, its output is different vs when the same query is run using postgersql CLI. Postgresql server, database are the same.
Minimal Reproduction
Output:
If the same query is run against the same database on the same postgresql server using psql:
Interestingly enough, if
AT TIME ZONE 'UTC'is applied to both timestamps before truncating, orUTCargument is supplied todate_truncfunction, output will be the same between sqlx and psql.Info
0.7.4postgres,time,uuid,runtime-tokio,rust_decimalPostgresql 16.2Arch linux 6.8.9-zen1-2-zenrustc --version:rustc 1.79.0-nightly (ab5bda1aa 2024-04-08)