【发布时间】:2012-04-04 02:16:55
【问题描述】:
问题很简单:如果我已经在没有时区的列类型时间戳中有数据,如果我将类型设置为带时区的时间戳,postgresql 对这些数据做了什么?
【问题讨论】:
-
你是对的,但在我启动我的应用程序/db/whatever 之前,答案可能会到来。
-
@a_horse_with_no_name 因为“它工作一次”是一种非常糟糕的方式来知道它每次都会做什么!
-
@couling:所以你的意思是如果多次运行同一组语句会产生不同的结果?即使所有输入参数都相同?在那种情况下,dbhenur 的回答不会证明任何事情,因为根据您的说法,运行该语句一次并不能保证下次它会以同样的方式工作。
-
我不是在暗示我是在陈述它。请参阅给定的答案!会话的
time zone会影响结果。我已经看到人们将查询放入 SQL 窗口(在命令行上)并给出了一个结果,他们在他们的应用程序中使用它并给出了另一个结果(由于他们的个人资料切换时区而没有他们知道)。 -
更进一步。考虑一个没有
ORDER BY子句的SQL 查询。返回的行顺序是官方未定义的; RDBMS 只会以最简单的顺序返回它们。我看到开发人员错误地认为他们可以依靠最旧的行(自更新以来最长的行)首先出现。他们相信这一点仅仅是因为他们“只是尝试过”。 ...debenhur 的回答是正确的,即使他的理由并不充分。参考手册会更好。
标签: postgresql timezone