hijri日期格式为mysql(无效范围)

时间:2014-06-01 11:09:19

标签: mysql date

这是表结构:

+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int(11)  | NO   |     | NULL    |       |
| date  | datetime | NO   |     | NULL    |       |
+-------+----------+------+-----+---------+-------+

有查询在此表中插入日期:

INSERT INTO tbl_temp SET id = 3, date = '1392-01-01';

查询运行成功:

如果我运行查询:

   INSERT INTO tbl_temp SET id = 3, date = '1392-02-31';

结果显示值超出范围,所以我如何设置列以获取日期格式的任何值,在这里我可以将列设置为text或varchar,以便它只获取数据,但后来我需要设置一些关于我需要列类型为日期>

的日期的触发器

注意:问题是,日期列具有日期类型(因此在公历中)它将采用从(0001-01-01)到(任何)的任何日期,但它必须根据日期格式。在使用hijri的应用程序中,我需要插入hijri日期(1393-02-31),但这是不在格里高利日期范围内的日期)所以它不允许数据到达数据库。

任何将任何日期插入表的mysql列的解决方案 。 问候

1 个答案:

答案 0 :(得分:0)

我发现MySQL服务器不支持hijri日期,因此只有两个选项:

  1. 应用程序级别自定义:列日期类型,必须是varchar或任何文本,我们从应用程序执行hijri输入,就像输入文本一样,并将其作为文本存储到数据库中,

  2. 数据库级自定义:我们必须将数据库保留为公历日期类型,并在应用程序视图中管理日期更改。

  3. 截至日期(列类型为日期时间,因此 1392-02-31 的日期不在格里高利日期范围内,因此它将拒绝它并将其保留为空