Oracle SQL - 从 CSV 导入日期(Excel 格式)
Oracle SQL - Importing Dates from CSV (Excel Format)
抱歉这个菜鸟问题(我正在尝试使用某些数据库练习 SQL),但是我如何将以下 Excel 日期格式转换为 MM-DD -YYYY?
原来的 Excel 列是美国格式 'MM-DD-YYYY' 并且它作为 VARCHAR2:
进入 SQL
因此,据我所知,我需要将其转换为数字,然后使用 'TO_DATE()' 函数(只获取前 50 行进行测试) :
SELECT TO_DATE(TO_NUMBER(DATE1), 'MM-DD-YYYY') FROM (
SELECT * FROM CHEMICALS2 FETCH FIRST 50 ROWS ONLY
)
并得到错误 '01843.0000 - 不是有效的月份'
我也试过在转换为数字后添加 41293,但得到了同样的错误。
你有更好的办法格式化它而不是更改原始 csv 文件吗?
尝试删除 TO_NUMBER 函数。
一个例子,
SELECT TO_DATE(DATE1, 'MM-DD-YYYY') FROM (
SELECT '10-18-2018' as date1 from dual
);
--更新
--重要说明:37894 是 excel 单元格
中的数字
select (to_date('01011900','DDMMYYYY')-2)+37894 from dual;
请:检查 returns 日期是否正确。
祝你好运
抱歉这个菜鸟问题(我正在尝试使用某些数据库练习 SQL),但是我如何将以下 Excel 日期格式转换为 MM-DD -YYYY?
原来的 Excel 列是美国格式 'MM-DD-YYYY' 并且它作为 VARCHAR2:
进入 SQL因此,据我所知,我需要将其转换为数字,然后使用 'TO_DATE()' 函数(只获取前 50 行进行测试) :
SELECT TO_DATE(TO_NUMBER(DATE1), 'MM-DD-YYYY') FROM (
SELECT * FROM CHEMICALS2 FETCH FIRST 50 ROWS ONLY
)
并得到错误 '01843.0000 - 不是有效的月份'
我也试过在转换为数字后添加 41293,但得到了同样的错误。
你有更好的办法格式化它而不是更改原始 csv 文件吗?
尝试删除 TO_NUMBER 函数。
一个例子,
SELECT TO_DATE(DATE1, 'MM-DD-YYYY') FROM (
SELECT '10-18-2018' as date1 from dual
);
--更新 --重要说明:37894 是 excel 单元格
中的数字select (to_date('01011900','DDMMYYYY')-2)+37894 from dual;
请:检查 returns 日期是否正确。
祝你好运