【问题标题】:Date format while importing table in sql developer在sql developer中导入表时的日期格式
【发布时间】:2016-07-03 18:51:27
【问题描述】:

我正在尝试从我通过 BI Publisher 查询从表中创建的 csv 文件导入详细信息。

在查询中,我有一个日期格式的列:

effective_start_date

1951-01-01T00:00:00.000+00:00 
1901-01-01T00:00:00.000+00:00 

现在当我在 Excel 中导入整个表格时。我应该如何以日期格式为'DD-MON-YYYY'的方式在sql developer中导入

现在很少有日期记录在表中被输入为空!

另外,我的目标列格式在 sql devleoper 中不是可编辑屏幕

【问题讨论】:

  • 从数据导入向导中导入的情况如何?日期没有内在格式,所以你真的在问如何将你拥有的字符串转换为日期。所有值的时间/时区部分是否始终为“00:00:00.000+00:00”?
  • 嗨 @AlexPoole - 通过 BI Publisher 从 Oracle Fusion 到 csv。通过sql devleoper从csv到table
  • 是的,但是您到底在 SQL Developer 中做什么?嗯,导入向导不喜欢您需要的格式,YYYY-MM-DD"T00:00:00.000+00:00",得到“GDK-05021:日期格式无法识别”,即使生成的插入是有效的。如果您对时间不感兴趣,是否可以修改 CSV 文件创建以仅导出 YYYY-MM-DD 部分?
  • 实际上,在仅获取数据时,我将其转换为 to_char(effective_start_date,'dd-mon-yyyy') 然后导出
  • CAST( TO_TIMESTAMP_TZ( value, 'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM' ) AS DATE )

标签: oracle date oracle-sqldeveloper


【解决方案1】:

Oracle 设置

CREATE TABLE TEST_LOAD ( id INT, effective_start_date DATE );

CSV

ID,EFFECTIVE_START_DATE
1,1951-01-01T00:00:00.000+00:00
2,1901-01-01T00:00:00.000+00:00

导入(SQL Developer 4.1.0.19)

  • 在连接面板中,右键单击表名并选择“导入数据...”
  • 浏览到 csv 文件,然后单击“下一步 >”。
  • 选择“插入脚本”作为插入方法,然后单击“下一步>”。
  • 单击“下一步>”接受默认选定的列。
  • 在列定义中,EFFECTIVE_START_DATE 旁边会有一个警告三角形,并会说“数据与列定义不兼容...”。将格式更改为YYYY-MM-DD"T00:00:00.000+00:00" 然后点击“下一步>”
  • 点击“完成”
  • 这应该会弹出一个对话框,显示“任务成功并发送到工作表”。
  • 可选:在脚本上查找/替换将to_date\(('.*?'), '.*?'\) 替换为CAST( TO_TIMESTAMP_TZ( $1, 'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM' ) AS DATE ),然后选择正则表达式选项并执行“全部替换”。
  • 运行脚本(按F5)。

输出

SELECT * FROM TEST_LOAD;

ID EFFECTIVE_START_DATE
-- --------------------
 1 1951-01-01 00:00:00
 2 1901-01-01 00:00:00

(日期的格式取决于您的 NLS 设置。)

【讨论】:

    猜你喜欢
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2021-01-29
    • 2020-03-23
    • 1970-01-01
    • 2019-06-12
    相关资源
    最近更新 更多