有没有办法用Postgres存储阿拉伯语日期?

时间:2011-10-14 13:02:17

标签: php javascript postgresql

我是一名PHP开发人员,我正在开展一个项目,我需要在我的数据库中存储阿拉伯语日期。

但是,我已经创建了应用程序并在其中嵌入了JavaScript阿拉伯语日历。

现在,当我选择日期时,例如12/02/1442,然后按下保存按钮,就会出现以下错误:

Year Out Of Range

3 个答案:

答案 0 :(得分:6)

这些日期(阿拉伯语,Jalali,...)通常会出现SQL服务器问题。根据我的经验,有3种方法可以处理它:

  1. 使用字符类型将日期存储到具有任何自定义格式的字段中。 (问题是:操作,算术,排序......它们很难实现)

  2. 使用整数固定字符类型来存储日期,例如14420101 1/1/1442。 (与第一个相同,但排序已解决)

  3. 使用 date timestamp 类型进行存储,您应该将日期转换为标准日期格式,然后再将其存储到数据库中,以及何时阅读它们将它们转换回来。此方法需要外部编程语言来处理(通常有外部语言)。或者您可以在数据库中编写内部函数。

  4. 只需存储日期,然后方法1和2就足够了。

    否则,我建议使用第三种方法,因为您可以使用存在于数据库服务器或编程语言中的datetime预定义函数。

    例如,您可以在PHP中轻松使用date_diff(),或者将postgres内部函数用于日期。

答案 1 :(得分:1)

我认为这是编写自定义数据类型的完美应用程序。也许有人已经做过,或者你可以开始。

答案 2 :(得分:0)

PostgreSQL支持日期和时间戳的输入和输出为Julian Day。手册中的两个适当部分:

如果您想在数据库中进行计算,这可能会有所帮助。如果这不是问题,只需将日期存储为 Masoud M。建议。