Oracle SQL - импорт дат из CSV (формат Excel) - PullRequest
0 голосов
/ 24 октября 2018

Извините за вопрос noob (я пытаюсь практиковать SQL с некоторыми базами данных), но как я могу преобразовать следующие форматы даты Excel в MM-DD-YYYY ?

Исходный столбец Excel находится в американском формате «ММ-ДД-ГГГГ» и переходит к SQL как VARCHAR2:

enter image description here

Итак, насколько язнаете, мне нужно преобразовать его в число, а затем использовать функцию 'TO_DATE ()' (только что получил первые 50 строк для тестирования):

     SELECT TO_DATE(TO_NUMBER(DATE1), 'MM-DD-YYYY')  FROM (
         SELECT * FROM CHEMICALS2 FETCH FIRST 50 ROWS ONLY
     )

и получил ошибку '01843.0000 - Недействительный месяц'

enter image description here

Я также пытался добавить 41293 после преобразования в число, но получил ту же ошибку.

У вас есть лучшая идея отформатировать это вместо изменения исходного файла CSV?

1 Ответ

0 голосов
/ 25 октября 2018

Попробуйте удалить функцию 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;

Пожалуйста: проверьте, возвращает ли правильную дату.

Удачи

...