powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Передвинуть дату во всех строках таблицы на 2 года
16 сообщений из 16, страница 1 из 1
Передвинуть дату во всех строках таблицы на 2 года
    #39983047
Eva_Klass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! Прошу помочь мне с переносом даты и времени.
Имеется таблица с ~700 строками и множеством колонок. В каждой строке имеется свой timestamp.
Необходимо перенести все timestamp'ы на 2 года вперед.
Как сделать это не через 700 запросов?
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983057
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eva_Klass,

покажите хотя бы два запроса из 700
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983074
Eva_Klass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,

700 одинаковых с разными айдишниками, типа

update TABLE
set TIMESTAMP = (select ADD_MONTHS(TIMESTAMP, 24) from TABLE where ID=10)
where ID=10;
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983080
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eva_Klass
123йй,

700 одинаковых с разными айдишниками, типа

update TABLE
set TIMESTAMP = (select ADD_MONTHS(TIMESTAMP, 24) from TABLE where ID=10)
where ID=10;


update TABLE
set TIMESTAMP = ADD_MONTHS(TIMESTAMP, 24) ;
както так
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983091
Eva_Klass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надфиль,

Спасибо!
Теперь мне стыдно, что я сама не додумалась) перемудрила
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983102
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eva_Klass
Надфиль,

Спасибо!
Теперь мне стыдно, что я сама не додумалась) перемудрила

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

В каждой строке имеется свой timestamp .
Необходимо перенести все timestamp'ы на 2 года вперед.
Как сделать это не через 700 запросов?


Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
SQL> create table t(id int, t timestamp);

Table created.

SQL> insert into t values(1,systimestamp);

1 row created.

SQL> select * from t;

        ID
----------
T
---------------------------------------------------------------------------
         1
23.07.2020 14:29:02.891782


SQL> update t set t=add_months(t,24);

1 row updated.

SQL> select * from t;

        ID
----------
T
---------------------------------------------------------------------------
         1
23.07.2022 14:29:02.000000


SQL>



.....
stax
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983123
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eva_Klass
имеется свой timestamp.


+ interval '2' year
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983124
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SQL> select ts, ts+interval'2' year ts2 from (select systimestamp ts from dual);

TS                                  TS2
----------------------------------- ------------------------------------
2020-07-23 12:47:58.729000 +01:00   2022-07-23 12:47:58.729000000 +01:00

1 row selected.
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983132
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender,

с высокосным не проконает

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

22172395

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

Да, на 29 февраля можно поймать ORA-01839

upd. но это всегда можно обойти, например

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with t as (
    select
        timestamp '2020-02-29 00:00:01' d
    from
        dual
)
select
        case
            when to_char(d, 'ddmm') = '2902' then
                d - interval '1' day
            else
                d
        end
        + interval '2' year d1
from
    t;
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983148
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env


upd. но это всегда можно обойти, например



22172346

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

Стас, в этом варианте точность не теряется. Проверь с добавлением миллисекунд.
...
Рейтинг: 0 / 0
Передвинуть дату во всех строках таблицы на 2 года
    #39983168
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
Stax,

Стас, в этом варианте точность не теряется. Проверь с добавлением миллисекунд.


да я верю, что не теряется
просто ето один из вариантов "то можно предложить"

ps
+ interval '2' year нулевой год делает, екзотика но ...

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

надо и на 2802 проверять, если +2года ето 2902, но тут уже от Евы зависит

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


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