powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / извлечение даты рождения
7 сообщений из 7, страница 1 из 1
извлечение даты рождения
    #40077560
aslanaslan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем привет
У меня есть строка, которая выглядит так:

980420875654 это число (фактический тип-number) :

98 04 20: 20 апреля 1998
875654: случайные сгенерированные вещи, которые мне не нужны
Мне нужно извлечь день рождения из этой строки и преобразовать его в тип DATE
...
Рейтинг: 0 / 0
извлечение даты рождения
    #40077566
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aslanaslan,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> with t as (
  2  select 980420875654 x from dual union all
  3  select 210420875654 x from dual )
  4  select to_date(substr(to_char(x),1,6),'rrmmdd') d from t
  5  /

D
-------------------
20.04.1998 00:00:00
20.04.2021 00:00:00



.....
stax
...
Рейтинг: 0 / 0
извлечение даты рождения
    #40077571
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aslanaslan,

как выглядит число еcли родился 20-04-2000 ?

.....
stax
...
Рейтинг: 0 / 0
извлечение даты рождения
    #40077581
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> ed
Wrote file afiedt.buf

  1  with t as (
  2  select 980420875654 x from dual union all
  3  select    420875654 x from dual union all
  4  select 210420875654 x from dual )
  5* select to_date(substr(to_char(x,'FM000000999999'),1,6),'rrmmdd') d from t
SQL> /

D
----------
20.04.1998
20.04.2000
20.04.2021

SQL>



......
stax
...
Рейтинг: 0 / 0
извлечение даты рождения
    #40077649
aslanaslan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,спасибо что ответили я решил примерно вот так
select (case when eid like '9%' then to_date('19'||substr(eid, 1, 6), 'YYYYMMDD')
when eid like '0%' then to_date('20'||substr(eid, 1, 6), 'YYYYMMDD')
end) into :new.date_rozh
from (select to_char(:new.iin) as eid
from dual
) t;

если кому нужно
...
Рейтинг: 0 / 0
извлечение даты рождения
    #40077666
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aslanaslan
Stax,спасибо что ответили я решил примерно вот так
Код: plsql
1.
2.
3.
4.
5.
6.
select (case when eid like '9%' then to_date('19'||substr(eid, 1, 6), 'YYYYMMDD')
             when eid like '0%' then to_date('20'||substr(eid, 1, 6), 'YYYYMMDD')
        end) into :new.date_rozh 
from (select to_char(:new.iin) as eid
      from dual
     ) t;


если кому нужно

Для оформления кода используйте, пожалуйста, тэг SRC.
...
Рейтинг: 0 / 0
извлечение даты рождения
    #40077674
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aslanaslan
Stax,спасибо что ответили я решил примерно вот так
select (case when eid like '9%' then to_date('19'||substr(eid, 1, 6), 'YYYYMMDD')
when eid like '0%' then to_date('20'||substr(eid, 1, 6), 'YYYYMMDD')
end) into :new.date_rozh
from (select to_char(:new.iin) as eid
from dual
) t;

если кому нужно


авторэто число (фактический тип-number ) :

как будет выглядеть число , для даты рождения 20-04-2009?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> ed
Wrote file afiedt.buf

  1  select (case when eid like '9%' then to_date('19'||substr(eid, 1, 6), 'YYYYMMDD')
  2               when eid like '0%' then to_date('20'||substr(eid, 1, 6), 'YYYYMMDD')
  3          end)
  4  from (select to_char(090420875654) as eid
  5        from dual
  6*      ) t
SQL> /
select (case when eid like '9%' then to_date('19'||substr(eid, 1, 6), 'YYYYMMDD')
                                                  *
ERROR at line 1:
ORA-01843: not a valid month



зы
если ето pl/sql (into :new.date_rozh ) то from dual лишнее, просто
:new.date_rozh:=...

.....
stax
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / извлечение даты рождения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]