SQLLDR格式单个数字月份和日期

时间:2018-05-03 21:49:03

标签: oracle sql-loader

在我的sqlldr ctl文件中,我有以下条目

    let promise = new Promise(function (resolve, reject) {

        asynchronousFunction();

      }).then(function (response) {
        //...
      });

   function asynchronousFunction() {

    //mimic asynchronous action...
    setTimeout(function(){
     resolve()
    },1000)

  }

但如果数据是22018传递022018,则会失败。我知道在java中它支持'MYYYY',但我在搜索后发现的是SQL没有这样的格式。那么我如何用单个数字解析日期?

此外,我还有另一个允许单个数字月份和日期的字段,例如'9/9/2018'

REPORT_MONTH "decode(trim(:REPORT_MONTH),null,null,to_date(trim(:REPORT_MONTH), 'MMYYYY'))"

1 个答案:

答案 0 :(得分:1)

在第一种情况下,您需要将日期填充为六个字符,并在左侧填入零。在第二种情况下,使用格式字符串'MM/DD/YYYY'可以正常工作。以下示例显示了如何完成此操作:

SELECT TO_DATE(LPAD('22018', 6, '0'), 'MMYYYY') AS SIX_DIGIT_DATE,
       TO_DATE('9/9/2018', 'MM/DD/YYYY') AS EIGHT_DIGIT_DATE
  FROM DUAL;

祝你好运。