2014-10-10 9 views
0

У меня есть формат даты 2011-01-06T06: 30: 10Z в Excel. Я хочу просто загрузить дату в таблицу из excel.How я получаю от нее часть даты. т.е. 2011-01-06Преобразование формата даты в Oracle

Благодаря

+1

Если вы загрузили данные в базу данных, все, что вам нужно сделать, это использовать 'TRUNC'. DATE всегда имеет часть datetime. И то, что вы видите, похоже на дату, не так, как хранится в базе данных. Формат мы понимаем для людей. Дата хранится в 7 байт во внутреннем формате. –

+0

@lalit kumar B Спасибо за эту информацию. Я попытаюсь загрузить данные, но перед загрузкой я думал, какой тип столбца я должен создать, так как он имеет Z в конце, поэтому не был уверен, что это формат timestamp –

+0

После того, как вы загрузите это, используйте 'TRUNC'. Он усекает временную часть и отобразит только часть даты. Если это часть вашего требования, дайте мне знать, я добавлю его как ответ –

ответ

2

Попробуйте это:

select cast(TO_TIMESTAMP_TZ(REPLACE('2011-01-06T06:30:10Z', 'T', ''), 'YYYY-MM-DD HH:MI:SS TZH:TZM') as date) from dual 
+0

Большое спасибо, да это сработало. Удивительно! –

+2

Вам не нужно 'REPLACE', просто сделайте' cast (TO_TIMESTAMP_TZ ('2011-01-06T06: 30: 10Z', 'YYYY-MM-DD' T "HH: MI: SS TZH: TZM ') как дата) ' –

+0

@Wernfried Yep! это тоже сработало. Спасибо. Это определенно поможет в быстрой обработке. –

0

Я думаю, еще какое-то объяснение необходимо.

Загрузка данных в базу данных - это одна часть, а ее отображение после извлечения - это еще одна часть.

Если вы загрузили данные в базу данных, вам нужно всего лишь использовать TRUNC. Он усекает часть time и отобразит только часть date.

DATE всегда имеет часть datetime вместе. TIMESTAMP является расширением до DATE. И то, что вы видите, похоже на дату, не так, как она хранится в базе данных. Формат мы понимаем для людей. Дата хранится в 7 байт во внутреннем формате.

Больше информации Основываясь на вопрос ФП с помощью комментариев

НИКОГДА НЕ магазин ДАТА в VARCHAR2 типа данных. Дата не является строковым литералом. Oracle предоставляет массу FORMAT MODELS, чтобы отобразить дату и время так, как вы хотите. Рано или поздно вы столкнетесь с проблемами производительности из-за преобразования данных. Всегда используйте явное преобразование для преобразования литерала в совершенный DATE, чтобы сравнить его с другим значением даты.

+0

Хорошо, я говорил о преобразовании и загрузке данных, отображение просто. Теперь я сделаю что-то подобное в excel, "= вставить в тестовые значения (cast (TO_TIMESTAMP_TZ (REPLACE) («& A2 &», «T», «),« YYYY-MM-DD HH: MI: SS TZH: TZM ») в качестве даты)); –

+0

Это нормально. Удачи! Вы можете искать google для 'Но я хочу хранить дату как', и вы получите очень хорошую статью Эд Стивенса, прочитайте ее. Это очень хорошо.Надеюсь, мой ответ дал вам лучшее понимание :-) –

+0

Конечно! Еще раз спасибо, прочитайте эту статью –

Смежные вопросы