Как я могу конвертировать из индийского стандартного формата времени в формат даты oracle.Coversion формата даты IST в формате Oracle sysdate
Например:
Mon May 23 2016 00:00:00 GMT+0530 (India Standard Time)
требуется Формат
23-May-16
Как я могу конвертировать из индийского стандартного формата времени в формат даты oracle.Coversion формата даты IST в формате Oracle sysdate
Например:
Mon May 23 2016 00:00:00 GMT+0530 (India Standard Time)
требуется Формат
23-May-16
Это разбирает входную строку и возвращает значение даты для вас:
select cast(to_timestamp_tz('Mon May 23 2016 00:00:00 GMT+0530', 'Dy Mon DD YYYY HH24:MI:SS "GMT"TZHTZM') as date) as converted_to_date_value
from dual;
Это разбирает входную строку на " timestamp with time zone "и форматирует значение обратно в строку в желаемом формате:
select to_char(to_timestamp_tz('Mon May 23 2016 00:00:00 GMT+0530', 'Dy Mon DD YYYY HH24:MI:SS "GMT"TZHTZM'), 'DD-Mon-RR') as converted_to_your_format
from dual;
Наслаждайтесь!
Сноска: Обратите внимание, что нет такой вещи, как «формат даты оракула», о котором вы говорите. У Oracle есть свой тип данных date
, который может иметь много много различных интуитивных подсказок в зависимости от вашего клиента, а также от настроек локали сервера.
Спасибо за ваши комментарии. –
Даты не имеют форматов, они являются двоичными значениями. IST относится к часам, а не к форматам. Oracle * имеет * типы дат, поэтому нет необходимости хранить строки вместо дат. Либо вы сохранили строки в базе данных вместо дат (это ошибка), либо вы хотите отформатировать значение даты в определенном формате для отображения - что-то лучше всего сделать на стороне клиента? Если вам нужно сделать это на сервере, вы должны проверить функции форматирования строки Oracle, как 'to_char' –