【问题标题】:Moving a PostgreSQL database from Windows to CentOS with different collations将 PostgreSQL 数据库从 Windows 移动到具有不同排序规则的 CentOS
【发布时间】:2013-03-02 19:50:06
【问题描述】:

我们在 Windows 上有一个生产服务器,其 PostgreSQL 数据库描述为:

LC_COLLATE = 'Portuguese_Brazil.1252'
LC_CTYPE = 'Portuguese_Brazil.1252'

问题是,当我们在我们的开发机器上工作时,都是 CentOS,PostgreSQL 安装只允许我们创建这种格式的数据库:

LC_COLLATE = 'en_US.UTF8'
LC_CTYPE = 'en_US.UTF8'

或

LC_COLLATE = 'pt_BR.UTF8'
LC_CTYPE = 'pt_BR.UTF8'

这会影响我们在每个日期和时间戳上存储日期和时间戳的方式。
如何在 centOS 机器上复制 windows 数据库的排序规则?反之亦然。

【问题讨论】:

  • 日期和时间戳不是以特定格式存储的。

标签: database windows postgresql centos


【解决方案1】:

可以在 postgresql.conf 中设置日期格式:

datestyle = 'iso, mdy'

调整mdy 部分。看Locale and Formatting

如何输入日期?如果日期输入格式以四位数年份开头,则它是明确的:

'2013-03-14 10:19'

尝试在任何地方使用该格式。检查date input format details

正如@a_horse 所评论的,日期存储格式始终相同,即二进制。可以配置的是输入输出格式。

【讨论】:

  • 时间戳的输入格式为:dd/mm/YYYY H:M:S。问题是,在 windows 数据库中它可以正确保存,但在 centOS 数据库上它显示超出范围错误,可能是由于日期格式。
  • @MurifoX 然后在 CentOS 服务器中使用datestyle = 'iso, dmy'。
  • 你可以,因为我在巴西利亚,但我不喜欢 cerveja goiana,因为它总是伴随着那些 sertanejo 歌曲 :)))
猜你喜欢
  • 1970-01-01
  • 2015-12-13
  • 2011-08-08
  • 2023-04-08
  • 2015-11-20
  • 2013-10-25
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多