【问题标题】:Convert date from one format to another using SQL*Loader control file使用 SQL*Loader 控制文件将日期从一种格式转换为另一种格式
【发布时间】:2010-07-22 11:55:17
【问题描述】:

infile 中的数据格式为MM/DD/YYYY 如何告诉控制文件以YYYYMM 的形式将其加载到数据库中?

【问题讨论】:

    标签: sql oracle sql-loader


    【解决方案1】:

    当您在 INFILE 声明中指定列时,只需标识数据保存的格式。像这样

    load data
    infile 'whatever.csv'
    into table t23
    fields terminated by ','
    trailing nullcols
    (
           col_1    integer 
         , col_2    char 
         , col_3    date "MM/DD/YYYY"
         , col_4    date "MM/DD/YYYY"
         , col_5    char 
    )
    

    不用担心“到”日期格式。这仅用于显示目的。 Oracle 以自己的内部表示形式存储日期。

    【讨论】:

      【解决方案2】:

      您是在尝试将 MM/DD/YYYY 数据加载到 char/varchar2 字段还是日期字段中?

      如果您尝试将其加载到日期字段中并且想要保留月份中的某天,那么 APC 的回答是正确的。如果你想这样做,你总是可以只显示 YYYYMM。

      如果您尝试将其加载到日期字段中,并且希望将其截断到该月的第一天,我认为这样的事情会起作用:

      date_column date "MM/DD/YYYY" "trunc(:date_column, 'mm')"

      如果插入到 CHAR/VARCHAR2 列中,您可以对其进行一些不同的转换:

      vc2_column char "substr(:vc2_column, 7, 4) || substr(:vc2_column, 1, 2)"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-23
        • 2015-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多