由于日期格式,将数据从 txt 文件导入 IBM netezza SQL 数据库时出错
Posted
技术标签:
【中文标题】由于日期格式,将数据从 txt 文件导入 IBM netezza SQL 数据库时出错【英文标题】:Error of importing data from txt file to IBM netezza SQL database due to date format 【发布时间】:2015-10-29 12:42:23 【问题描述】:我需要将数据从 文本文件 上传到 Netezza 表。它不起作用,因为 Netezza 表和文本文件之间的日期格式不同。根据 Netezza 表日期格式,它应该只是日期,但在文本文件中它是日期时间。
有什么办法可以让我只在上传时将数据时间转换为日期。
-
下面是一行数据的文件格式-
AS_OF_DATE|ID 2015 年 10 月 1 日 00:00:00|40
-
在我用来上传的 Netezza 查询下方
插入 LND_FINANCE_CUSTOMER (AS_OF_DATE,ID)
选择 * 来自外部“D:123.txt”
使用 ( 报价双倍 分隔符“|” 最大错误 4 日期样式 MDY 日期标记'/' 最大 0 Y2BASE 2000 内部编码 远程 ODBC ESCAPECHAR '\');
-
0 由于日期格式,正在插入行。如果在文本文件中我手动将日期时间格式更改为仅日期。那么它工作正常。
【问题讨论】:
你说的query ans文件格式在哪里 Netezza 上 LND_FINANCE_CUSTOMER 表中的 AS_OF_DATE 列是否定义为 DATE 或 TIMESTAMP? 【参考方案1】:如果您强制文件规范添加时间戳,加载应该可以正常工作。它将转换回插入到LND_FINANCE_CUSTOMER
中的日期。请参阅下面的代码:
INSERT INTO LND_FINANCE_CUSTOMER (AS_OF_DATE,ID)
SELECT * FROM EXTERNAL 'D:\123.txt'
(AS_OF_DATE timestamp
,ID integer)
USING ( QUOTEDVALUE DOUBLE DELIMITER '|' MAXERRORS 4 DATESTYLE MDY DATEDELIM '/' MAXROWS 0 Y2BASE 2000 ENCODING internal REMOTESOURCE ODBC ESCAPECHAR '\');
【讨论】:
以上是关于由于日期格式,将数据从 txt 文件导入 IBM netezza SQL 数据库时出错的主要内容,如果未能解决你的问题,请参考以下文章
使用 VBA 在 Access 中导入 txt 文件 - 日期格式问题 - 导入规范
将 47G 数据文件从 Aginity 工作台导入 IBM netezza 数据库时出错