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

Откуда:
Сообщений: 15
как преобразовать строки к дате ?
select '21.12.2001' from dual
union
select '21-12-2001' from dual
union
select '21.Jan.2001' from dual
union
select '21/фев/2001' from dual
union
select '12.21.01' from dual
union
select '256.2001' from dual

Думаю это похоже,но не совсем то.

SELECT TO_DATE('21-12-2001', 'DD-MM-YY') FROM DUAL
union all
select to_date('21.12.2001','dd.mm.yyyy') from dual
union all
select to_date('21.Jan.2001','dd.Mon.yyyy') from dual
union all
select to_date('21/фев/2001','dd.mon.yy') from dual
union all
select to_date('21.12.01', 'dd.mm.yy') from dual
union all
select to_date('256.2001', 'ddd.yyyy') from dual

Как сделать так,чтобы на входе была таблица из 6 строк с одним текстовым полем,
а селект должен возвратить даты?
6 июн 14, 12:50    [16131695]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
-2-
Member

Откуда:
Сообщений: 15330
natlag
Как сделать так,чтобы на входе была таблица из 6 строк с одним текстовым полем,
а селект должен возвратить даты?
with t as (select '21.12.2001' from dual
union
select '21-12-2001' from dual
union
select '21.Jan.2001' from dual
union
select '21/фев/2001' from dual
union
select '12.21.01' from dual
union
select '256.2001' from dual)
SELECT TO_DATE('21-12-2001', 'DD-MM-YY') FROM DUAL
union all
select to_date('21.12.2001','dd.mm.yyyy') from dual
union all
select to_date('21.Jan.2001','dd.Mon.yyyy', 'nls_date_language=english') from dual
union all
select to_date('21/фев/2001','dd.mon.yy', 'nls_date_language=russian') from dual
union all
select to_date('21.12.01', 'dd.mm.yy') from dual
union all
select to_date('256.2001', 'ddd.yyyy') from dual;
6 июн 14, 13:15    [16131967]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
natlag
Member

Откуда:
Сообщений: 15
-2-,о.благодарю
6 июн 14, 13:25    [16132096]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
natlag
Member

Откуда:
Сообщений: 15
-2-,хм..а как сделать так чтобы не было здесь строки с датой,а лишь маска была,которая и определяла преобразование ?
SELECT TO_DATE('21-12-2001', 'DD-MM-YY') FROM DUAL
union all
select to_date('21.12.2001','dd.mm.yyyy') from dual и т д
6 июн 14, 14:59    [16133019]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
natlag
Member

Откуда:
Сообщений: 15
возможно как то так
WITH t AS (
SELECT '21.12.2001' d FROM dual UNION ALL
SELECT '21/12/01' d FROM dual UNION ALL
SELECT '21.12.01' d FROM dual UNION ALL
SELECT '111110' d FROM dual
)
SELECT TO_DATE(REPLACE(REGEXP_REPLACE(d, '^(\d+)/(\d+)/', '\1.\2.'),'.'), 'DDMMYY') d FROM t
только для буквенного представления месяцев не знаю как написать..
6 июн 14, 15:05    [16133095]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
mlc
Member

Откуда: Asus Winter Cup
Сообщений: 487
natlag
TO_DATE(REPLACE(REGEXP_REPLACE(d, '^(\d+)/(\d+)/', '\1.\2.'),'.'), 'DDMMYY')

to_date(translate(d,'#./',' '),'ddmmyyyy')
6 июн 14, 15:41    [16133475]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
natlag
Member

Откуда:
Сообщений: 15
mlc,а как тогда быть с порядковым днем и вида '21-12-2001'?как это записать?
6 июн 14, 15:53    [16133558]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
mlc
Member

Откуда: Asus Winter Cup
Сообщений: 487
natlag,

добавьте в translate -
6 июн 14, 15:54    [16133571]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
Elic
Member

Откуда:
Сообщений: 29991
natlag
а как сделать так
Золотой пули нет
6 июн 14, 15:59    [16133613]     Ответить | Цитировать Сообщить модератору
 Re: преобразование строки в дату  [new]
natlag
Member

Откуда:
Сообщений: 15
mlc,точно
6 июн 14, 16:10    [16133694]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить