Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Правильная форматная маска  [new]
ultrasonic7
Member

Откуда:
Сообщений: 127
Здравствуйте, как корректно задать форматную маску для даты в следующем формате? Буква T между датой и временем. Это формат из XSD, описан здесь:
https://www.w3schools.com/xml/schema_dtypes_date.asp

Пробовал так, не помогает:
SELECT TO_DATE('2018-04-24T16:24:00', 'dd.mm.yyyy hh24:mi:ss') DATE_X FROM DUAL
SELECT TO_DATE('2018-04-24T16:24:00', 'dd.mm.yyyyThh24:mi:ss') DATE_X FROM DUAL
19 окт 18, 09:36    [21708488]     Ответить | Цитировать Сообщить модератору
 Re: Правильная форматная маска  [new]
-2-
Member

Откуда:
Сообщений: 15330
ultrasonic7
Пробовал
sql reference, format models
19 окт 18, 09:52    [21708506]     Ответить | Цитировать Сообщить модератору
 Re: Правильная форматная маска  [new]
ultrasonic7
Member

Откуда:
Сообщений: 127
-2-
Я и смотрю данный мануал, но вот так тоже не проходит
SELECT TO_DATE('2018-04-24T16:24:00', 'dd-mm-yyyy hh24:mi:ss TZH:TZM') DATE_X FROM DUAL
19 окт 18, 09:57    [21708515]     Ответить | Цитировать Сообщить модератору
 Re: Правильная форматная маска  [new]
MazoHist
Member

Откуда:
Сообщений: 145
double quotes спасут отца русской демократии
TO_DATE('2018-04-24T16:24:00', 'dd.mm.yyyy"T"hh24:mi:ss')
19 окт 18, 10:09    [21708530]     Ответить | Цитировать Сообщить модератору
 Re: Правильная форматная маска  [new]
-2-
Member

Откуда:
Сообщений: 15330
ultrasonic7
Я и смотрю данный мануал, но вот так тоже не проходит
SELECT TO_DATE('2018-04-24T16:24:00', 'dd-mm-yyyy hh24:mi:ss TZH:TZM') DATE_X FROM DUAL
Даже для метода тыка выбор не очевиден. Если бы начал с первого пункта таблицы масок, то сразу попал бы в точку. Если же по алфавиту искать именно Т, то сначала указана маска TS. Но это ладно... Порядок день-месяц-год чем помешал?!
19 окт 18, 10:09    [21708531]     Ответить | Цитировать Сообщить модератору
 Re: Правильная форматная маска  [new]
ultrasonic7
Member

Откуда:
Сообщений: 127
Вопрос решен. Двойные кавычки и правильный порядок элементов спасли отца русской демократии)
SELECT TO_DATE('2018-04-24T16:24:00', 'yyyy-mm-dd"T"hh24:mi:ss') DATE_X FROM DUAL;
19 окт 18, 10:16    [21708548]     Ответить | Цитировать Сообщить модератору
 Re: Правильная форматная маска  [new]
rpovarov
Member

Откуда:
Сообщений: 73
-2-
Порядок день-месяц-год чем помешал?!

Наверное, унификация под ISO 8601...

@ultrasonic7:

У функции TO_DATE есть ещё один момент - так тоже сработает:
SELECT TO_DATE('2018-04-24',    'yyyy-mm-dd"T"hh24:mi:ss') DATE_X FROM DUAL;
SELECT TO_DATE('2018-04-24T16', 'yyyy-mm-dd"T"hh24:mi:ss') DATE_X FROM DUAL;

Если нужен жёсткий контроль входных данных - то в маску надо добавить fx: 'fxyyyy-mm-dd"T"hh24:mi:ss'
22 окт 18, 17:47    [21711491]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить