powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01852: seconds must be between 0 and 59
7 сообщений из 7, страница 1 из 1
ORA-01852: seconds must be between 0 and 59
    #40022035
drylio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, не спрашивайте, зачем это было сделано, но система отдает 60-ю секунду, и oracle не понимает этого. Я возьму простой пример с dual:
select to_date('2020.11.25 00:00:60', 'YYYY.MM.DD HH24:MI:SS') from dual.

Все как и нормально, он дает ошибку. Mожно ли сделать так чтобы, если отдает 60-ю секунду, время переводится на следующую минуту и ​​00 секунд. Если это не 60-я секундa, время остается как есть. Спасибо
...
Рейтинг: 0 / 0
ORA-01852: seconds must be between 0 and 59
    #40022037
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
drylio,

Пишите функцию, которая будет парсить строку в числа и если секунды пришли 60 то добавлять минуту и далее паровозом вплоть до года, далее собираете обратно в дату.
...
Рейтинг: 0 / 0
ORA-01852: seconds must be between 0 and 59
    #40022074
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drylio,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SQL> ed
Wrote file afiedt.buf

  1  with t(s) as (
  2  select '2020.11.25 00:00:59' from dual union all
  3  select '2020.11.25 00:00:60' from dual union all
  4  select '2020.11.24 00:59:60' from dual union all
  5  select '2020.11.24 23:59:60' from dual union all
  6  select '2020.11.30 23:59:60' from dual )
  7  select s,
  8  case when substr(s,-3)=':60' then
  9    to_date(substr(s,1,16), 'YYYY.MM.DD HH24:MI') + 1/24/60
 10  else
 11    to_date(s, 'YYYY.MM.DD HH24:MI:SS')
 12  end dt
 13* from t
SQL> /

S                   DT
------------------- -------------------
2020.11.25 00:00:59 25.11.2020 00:00:59
2020.11.25 00:00:60 25.11.2020 00:01:00
2020.11.24 00:59:60 24.11.2020 01:00:00
2020.11.24 23:59:60 25.11.2020 00:00:00
2020.11.30 23:59:60 01.12.2020 00:00:00



.....
stax
...
Рейтинг: 0 / 0
ORA-01852: seconds must be between 0 and 59
    #40022078
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Оракуле так и не узнали о существовании високосных секунд...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ORA-01852: seconds must be between 0 and 59
    #40022090
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
alter session set nls_date_format='YYYY.MM.DD HH24:MI:SS'
/
with t(s) as (
              select '2020.11.25 00:00:59' from dual union all
              select '2020.11.25 00:00:60' from dual union all
              select '2020.11.24 00:59:60' from dual union all
              select '2020.11.24 23:59:60' from dual union all
              select '2020.11.30 23:59:60' from dual
             )
select  s,
        to_date(substr(s,1,16),'YYYY.MM.DD HH24:MI') + substr(s,-2) / 24 / 3600 dt
  from  t
/

S                   DT
------------------- -------------------
2020.11.25 00:00:59 2020.11.25 00:00:59
2020.11.25 00:00:60 2020.11.25 00:01:00
2020.11.24 00:59:60 2020.11.24 01:00:00
2020.11.24 23:59:60 2020.11.25 00:00:00
2020.11.30 23:59:60 2020.12.01 00:00:00

SQL>



SY.
...
Рейтинг: 0 / 0
ORA-01852: seconds must be between 0 and 59
    #40022095
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

да
так намного проще и красивее

перемудрил

.....
stax
...
Рейтинг: 0 / 0
ORA-01852: seconds must be between 0 and 59
    #40022104
drylio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо stax, SY. Вы как всегда молодцы. Oблегчили мне жизнь :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01852: seconds must be between 0 and 59
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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