【发布时间】:2015-11-04 14:41:29
【问题描述】:
我有一组代码,我从 Postgres 转换为在 MySQL (PHPmyAdmin) 上工作,该代码已经具有以下格式的插入部分:
INSERT INTO ORD (TOTAL, SHIPDATE, ORDID, ORDERDATE, CUSTID, COMMPLAN)
VALUES ('101.4', '08-JAN-87', '610', '07-JAN-87', '101', 'A');
由于 MySQL 不喜欢日期为 '08-JAN-87',它最终只会在日期列中显示 0000-00-00。
从我到目前为止所做的搜索来看,唯一给出的解决方案似乎是在 select 语句期间对其进行转换,以便正确显示。我想知道改变数据本身的方法。 (不仅仅是一个选择语句)
这是针对 uni 作业的,讲师只能建议手动将所有插入语句更改为它可以接受的格式。这可能适用于这种情况,但从长远来看或对于更大的数据转储,这是不可能的。
【问题讨论】:
-
数据以什么格式存储?
-
08-JAN-87 不是 Postgres 存储日期数据的方式,那么你从哪里得到它呢? Postgres 将接受该格式的日期输入,但需要正确设置 datestyle 参数以避免 YMD 和 DMY 之间的歧义。即 12-JAN-02 可能是 2002 年 1 月 12 日或 2012 年 1 月 2 日。
-
@Shadow 在创建表步骤中声明为“DATE”格式。
-
@DavidSoussan 这正是代码用于预加载的方式。 Postgres 可以很好地处理和显示它。现在我们要将代码移植到 MySQL 并根据需要进行修复。
-
如果有帮助请查看此链接stackoverflow.com/questions/404875/…,您可以使用 sed 转换日期格式
标签: mysql postgresql phpmyadmin