У меня есть формат даты 2011-01-06T06: 30: 10Z в Excel. Я хочу просто загрузить дату в таблицу из excel.How я получаю от нее часть даты. т.е. 2011-01-06Преобразование формата даты в Oracle
Благодаря
У меня есть формат даты 2011-01-06T06: 30: 10Z в Excel. Я хочу просто загрузить дату в таблицу из excel.How я получаю от нее часть даты. т.е. 2011-01-06Преобразование формата даты в Oracle
Благодаря
Попробуйте это:
select cast(TO_TIMESTAMP_TZ(REPLACE('2011-01-06T06:30:10Z', 'T', ''), 'YYYY-MM-DD HH:MI:SS TZH:TZM') as date) from dual
Большое спасибо, да это сработало. Удивительно! –
Вам не нужно 'REPLACE', просто сделайте' cast (TO_TIMESTAMP_TZ ('2011-01-06T06: 30: 10Z', 'YYYY-MM-DD' T "HH: MI: SS TZH: TZM ') как дата) ' –
@Wernfried Yep! это тоже сработало. Спасибо. Это определенно поможет в быстрой обработке. –
Я думаю, еще какое-то объяснение необходимо.
Загрузка данных в базу данных - это одна часть, а ее отображение после извлечения - это еще одна часть.
Если вы загрузили данные в базу данных, вам нужно всего лишь использовать TRUNC
. Он усекает часть time
и отобразит только часть date
.
DATE всегда имеет часть datetime вместе. TIMESTAMP
является расширением до DATE
. И то, что вы видите, похоже на дату, не так, как она хранится в базе данных. Формат мы понимаем для людей. Дата хранится в 7 байт во внутреннем формате.
Больше информации Основываясь на вопрос ФП с помощью комментариев
НИКОГДА НЕ магазин ДАТА в VARCHAR2 типа данных. Дата не является строковым литералом. Oracle предоставляет массу FORMAT MODELS
, чтобы отобразить дату и время так, как вы хотите. Рано или поздно вы столкнетесь с проблемами производительности из-за преобразования данных. Всегда используйте явное преобразование для преобразования литерала в совершенный DATE
, чтобы сравнить его с другим значением даты.
Хорошо, я говорил о преобразовании и загрузке данных, отображение просто. Теперь я сделаю что-то подобное в excel, "= вставить в тестовые значения (cast (TO_TIMESTAMP_TZ (REPLACE) («& A2 &», «T», «),« YYYY-MM-DD HH: MI: SS TZH: TZM ») в качестве даты)); –
Это нормально. Удачи! Вы можете искать google для 'Но я хочу хранить дату как', и вы получите очень хорошую статью Эд Стивенса, прочитайте ее. Это очень хорошо.Надеюсь, мой ответ дал вам лучшее понимание :-) –
Конечно! Еще раз спасибо, прочитайте эту статью –
Если вы загрузили данные в базу данных, все, что вам нужно сделать, это использовать 'TRUNC'. DATE всегда имеет часть datetime. И то, что вы видите, похоже на дату, не так, как хранится в базе данных. Формат мы понимаем для людей. Дата хранится в 7 байт во внутреннем формате. –
@lalit kumar B Спасибо за эту информацию. Я попытаюсь загрузить данные, но перед загрузкой я думал, какой тип столбца я должен создать, так как он имеет Z в конце, поэтому не был уверен, что это формат timestamp –
После того, как вы загрузите это, используйте 'TRUNC'. Он усекает временную часть и отобразит только часть даты. Если это часть вашего требования, дайте мне знать, я добавлю его как ответ –