将日期从 '01-JAN-85' 格式转换为 MySQL 在 table 中可读(来自 Postgres)
Converting Date from '01-JAN-85' format to MySQL readable in table (from Postgres)
我有一组代码是从 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 语句期间对其进行转换,以便它正确显示。我想知道一种更改数据本身的方法。 (不仅仅是 select 语句)
这是针对单项作业的,讲师只能建议手动将所有插入语句更改为它可以接受的格式。这可能适用于这种情况,但在较长的 运行 或更大的数据转储中,这是不可能的。
您需要修改导入,以便将数据字符串转换为 MySQL
INSERT INTO ORD (TOTAL, SHIPDATE, ORDID, ORDERDATE, CUSTID, COMMPLAN)
VALUES ('101.4', STR_TO_DATE('08-JAN-87', '%d-%b-%y'), '610', STR_TO_DATE('07-JAN-87', '%d-%b-%y'), '101', 'A');
这告诉 mysql 字符串 08-JAN-87 是格式为 DD-MMM-YY 的日期并将其转换为有效的日期数据类型。
我有一组代码是从 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 语句期间对其进行转换,以便它正确显示。我想知道一种更改数据本身的方法。 (不仅仅是 select 语句)
这是针对单项作业的,讲师只能建议手动将所有插入语句更改为它可以接受的格式。这可能适用于这种情况,但在较长的 运行 或更大的数据转储中,这是不可能的。
您需要修改导入,以便将数据字符串转换为 MySQL
INSERT INTO ORD (TOTAL, SHIPDATE, ORDID, ORDERDATE, CUSTID, COMMPLAN)
VALUES ('101.4', STR_TO_DATE('08-JAN-87', '%d-%b-%y'), '610', STR_TO_DATE('07-JAN-87', '%d-%b-%y'), '101', 'A');
这告诉 mysql 字符串 08-JAN-87 是格式为 DD-MMM-YY 的日期并将其转换为有效的日期数据类型。