由于日期格式,将数据从 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 数据库时出错

将数据从 Excel 文件导入 MSAccess 格式化 VBA 中的每一列

oracle导入文件时,日期格式问题

怎么将.txt文件导入到sql数据库中啊!

使用 SQL Developer 将 CSV 文件导入 Oracle