我是一名PHP开发人员,我正在开展一个项目,我需要在我的数据库中存储阿拉伯语日期。
但是,我已经创建了应用程序并在其中嵌入了JavaScript阿拉伯语日历。
现在,当我选择日期时,例如12/02/1442
,然后按下保存按钮,就会出现以下错误:
Year Out Of Range
答案 0 :(得分:6)
这些日期(阿拉伯语,Jalali,...)通常会出现SQL服务器问题。根据我的经验,有3种方法可以处理它:
使用字符类型将日期存储到具有任何自定义格式的字段中。 (问题是:操作,算术,排序......它们很难实现)
使用整数或固定字符类型来存储日期,例如14420101
1/1/1442
。 (与第一个相同,但排序已解决)
使用 date 或 timestamp 类型进行存储,您应该将日期转换为标准日期格式,然后再将其存储到数据库中,以及何时阅读它们将它们转换回来。此方法需要外部编程语言来处理(通常有外部语言)。或者您可以在数据库中编写内部函数。
只需存储日期,然后方法1和2就足够了。
否则,我建议使用第三种方法,因为您可以使用存在于数据库服务器或编程语言中的date
和time
预定义函数。
例如,您可以在PHP中轻松使用date_diff()
,或者将postgres内部函数用于日期。
答案 1 :(得分:1)
我认为这是编写自定义数据类型的完美应用程序。也许有人已经做过,或者你可以开始。
答案 2 :(得分:0)
PostgreSQL支持日期和时间戳的输入和输出为Julian Day。手册中的两个适当部分:
如果您想在数据库中进行计算,这可能会有所帮助。如果这不是问题,只需将日期存储为 Masoud M。建议。