gpt4 book ai didi

PostgreSQL 没有正确排序时间戳列

转载 作者:行者123 更新时间:2023-11-29 11:35:34 27 4
gpt4 key购买 nike

我在 PostgreSQL 数据库中有一个表,其中有一列 TIMESTAMP WITHOUT TIME ZONE 类型。我需要按此列对记录进行排序,显然 PostgreSQL 在这两个方面都遇到了一些麻烦

...ORDER BY time_column

...ORDER BY time_column DESC

为具有相同 time_column 值的 3 元素记录样本提供相同的元素顺序,除了其中的毫秒数。

排序的时候好像没有考虑毫秒值。

我确定毫秒数实际上存储在数据库中,因为当我获取记录时,我可以在我的 DateTime 字段中看到它们。

当我先加载所有记录,然后按内存中的time_column排序时,结果是正确的。

我是否缺少一些使排序行为正确的选项?

编辑:我显然错过了很多。问题不在 PostgreSQL 中,而是在 NHibernate 中剥离 DateTime 属性的毫秒数。

最佳答案

认为 PostgreSQL 无法正确排序时间戳的想法很愚蠢。运行快速测试并放心:

CREATE TEMP TABLE t (x timestamp without time zone);

INSERT INTO t VALUES
('2012-03-01 23:34:19.879707')
,('2012-03-01 23:34:19.01386')
,('2012-03-01 23:34:19.738593');

SELECT x FROM t ORDER by x DESC;
SELECT x FROM t ORDER by x;

q.e.d.

然后尝试找出查询中真正发生的事情。如果您不能,请发布一个测试用例,您将很快得到帮助。

关于PostgreSQL 没有正确排序时间戳列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9516468/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com