【问题标题】:Oracle to Mysql timestamp data is not importingOracle 到 Mysql 时间戳数据未导入
【发布时间】:2014-08-06 05:45:47
【问题描述】:

我正在尝试将数据从 CSV(由 oracle 表生成)加载到 MySQL 表。

CSV 文件内容示例:

ID、编号、CreationTimeStamp、ModifiedTimestamp

64282,44000000,26-JUN-13 03.18.48.235000 PM,26-JUN-13 03.18.55.929157 PM

64283,44000000,26-JUN-13 03.25.45.013000 PM,26-JUN-13 03.25.52.015622 PM

64286,40000000,27-JUN-13 03.14.33.198000 PM,27-JUN-13 03.14.39.090887 PM

当我将数据加载到 MySQL(使用 LOAD DATA INFILE...)时,我在 CreationTimeStamp 和 ModifiedTimestamp 字段中得到零。

从 CSV 加载后的 MySQL:

| 64282 | 44000000 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |

| 64283 | 44000000 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |

| 64286 | 40000000 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |

我应该使用什么数据类型来导入时间戳值? MySQL 中 Oracle 的 TIMESTAMP 数据类型的等效数据类型是什么?

【问题讨论】:

  • 也许this 对你有帮助。
  • 您可以在LOAD DATA INFILE 中使用str_to_date 将oracle 日期字符串转换为mysql 日期
  • 加载时使用了 str_to_date 函数,但它采用当前日期和时间。 [ 2014-08-06 11:46:46]

标签: mysql oracle datetime csv timestamp


【解决方案1】:

首先您将数据导入为 VARCHAR,然后您需要将其转换为:

SELECT STR_TO_DATE('26-JUN-13 03.18.55.929157','%d-%M-%y %H.%i.%s'); 

【讨论】:

  • 想要导入 CSV 文件,我有大量文件要导入。
  • 试试这个LOAD DATA LOCAL INFILE '/Users/Path/To/CSV/file.csv' INTO TABLE tbl1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (col1,col2,@date1,@date2) SET @date1 = STR_TO_DATE(@date1,'%d-%M-%y %h.%i.%s'),@date2 = STR_TO_DATE(@date2,'%d-%M-%y %h.%i.%s');
  • 它的工作..谢谢。但我想保留与“26-JUN-13 03.18.55”相同的格式
  • 你不能将你想要的格式存储在 mysql datetime 中,但你可以通过这样做SELECT DATE_FORMAT(your_column,'%d-%b-%y %H.%i.%s') 获得该格式,如果它有用,请评价我上面的答案,谢谢
猜你喜欢
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 2019-12-20
相关资源
最近更新 更多