Простое заявление, чтобы обновить только месяц и год из оракула SQL - PullRequest
0 голосов
/ 06 июля 2019

Я использую Oracle SQL, и у меня есть даты, сделанные в разные месяцы и год.Тем не менее, мне нужно простое заявление об обновлении для обновления до определенного месяца и года без изменения дня.

Я пытался использовать add_months вместе с months_between, но он выдает ошибку, сообщающую о несовместимых типах данных.Так что это не сработает.

Команды, которые я пробовал:

UPDATE MYDATE=ADD_MONTHS(MYDATE,MONTHS_BETWEEN(TRUNC('Jun','mm'),trunc(MYDATE,'mm)))

Например:

MYDATE
01/02/18
03/05/17

Ожидаемый результат:

01/06/19
03/06/19

1 Ответ

0 голосов
/ 06 июля 2019

Вы можете использовать

update tab
   set mydate=to_date(to_char(mydate,'dd')||'06'||to_char(sysdate,'yyyy'),'ddmmyyyy')

, поскольку month является фиксированным и year является текущим

Демо

Также вы можете попробовать

update tab
   set mydate=add_months( mydate, round(months_between(
                         to_date('2019-06-'||to_char(mydate,'dd'),'yyyy-mm-dd'),mydate)) ) 

с add_months и months_between вместе

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...