SQLLDR 格式单个数字月份和日期
SQLLDR format single digit month and date
在我的 sqlldr ctl 文件中,我有以下条目
REPORT_MONTH "decode(trim(:REPORT_MONTH),null,null,to_date(trim(:REPORT_MONTH), 'MMYYYY'))"
但是如果数据是 22018 pass for 022018,这会失败。我知道在 java 它支持 'MYYYY' 但我搜索后发现 SQL 没有这种格式。那我如何解析单个数字的日期?
我还有另一个字段,其中应该允许一位数字的月份和日期,例如“9/9/2018”
DISP_DATE "decode(trim(:DISP_DATE),null,null,to_date(trim(:DISP_DATE), 'MM/DD/YYYY'))"
在第一种情况下,您需要将日期填充到六个字符,并在左侧填充零。在第二种情况下,使用格式字符串 '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;
祝你好运。
在我的 sqlldr ctl 文件中,我有以下条目
REPORT_MONTH "decode(trim(:REPORT_MONTH),null,null,to_date(trim(:REPORT_MONTH), 'MMYYYY'))"
但是如果数据是 22018 pass for 022018,这会失败。我知道在 java 它支持 'MYYYY' 但我搜索后发现 SQL 没有这种格式。那我如何解析单个数字的日期?
我还有另一个字段,其中应该允许一位数字的月份和日期,例如“9/9/2018”
DISP_DATE "decode(trim(:DISP_DATE),null,null,to_date(trim(:DISP_DATE), 'MM/DD/YYYY'))"
在第一种情况下,您需要将日期填充到六个字符,并在左侧填充零。在第二种情况下,使用格式字符串 '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;
祝你好运。