我昨天看到了Heroku Postgres的怪异行为。当我执行此sql查询以进行字符串比较时:
SELECT ('2013/12-25' <= '2013/12/')
我的开发机器上的Postgres(9.2.3,Mac OS X Mavericks)返回 true (这是正确的),而Heroku上的Postgres(9.2.4)返回 false !!!
有谁知道如何解决这个问题?
答案 0 :(得分:1)
似乎这两个Postgresql实例[在服务器配置中有不同的默认COLLATIONS(http://www.postgresql.org/docs/9.3/static/collation.html):
尝试检查此命令是否在两台服务器上输出相同的结果:
show lc_collate
对于您的示例,不同的排序规则可以显示不同的结果。例如:
SELECT (('2013/12-25' COLLATE "en_US") <= ('2013/12/' COLLATE "en_US"))
UNION ALL
SELECT (('2013/12-25' COLLATE "ko_KR") <= ('2013/12/' COLLATE "ko_KR"))