2011-10-14 28 views
8

我是一名PHP开发人员,我正在开发一个项目,其中需要在数据库中存储阿拉伯语日期。有没有办法用Postgres存储阿拉伯语日期?

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

现在,当我选择一个日期,如12/02/1442,然后按保存按钮,它给了我下面的错误:

Year Out Of Range 
+1

请提供更多信息 - 代码,数据库模式,SQL语句等。 –

回答

6

这些日期(阿拉伯语,贾拉利,...)通常与SQL的问题服务器。在我的经验中,有3种方式处理:

  1. 使用字符类型存储日期与任何自定义格式的字段。 (问题是:操纵,算术,排序,...它们是难以实现)

  2. 使用整数固定字符类型存储日期,就像144201011/1/1442。 (同第一个,但排序是解决)

  3. 使用日期时间戳类型的存储,你应该将其存储到数据库之前转换日期以标准日期格式,当你阅读他们将它们转换回来。此方法需要外部编程语言来处理(通常有外部语言)。或者你可以在你的数据库中编写一个内部函数。

只是存储日期,然后方法1和2就足够了。否则,我建议第三种方法,因为您可以使用datetime预定义的函数,它存在于数据库服务器或编程语言中。

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

+0

关于2):如果整数编码为14420212,则排序会容易得多。 –

1

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