Обновите ГОД в поле ДАТА
DB2 z/OS Версия 10
Для DATE
столбец в таблице, я хотел бы обновить часть ГОДА DATE
до 1900. Например, обновить 1981-09-03
в 1900-09-03
,
Я попытался использовать следующее:
UPDATE SERDB.S16_WEB_USERS_T
SET YEAR(S16_BIRTH_DT) = '1900'
WHERE YEAR(S16_BIRTH_DT) > '0';
Я получаю следующую ошибку:
НЕЗАКОННЫЙ СИМВОЛ "(". НЕКОТОРЫЕ СИМВОЛЫ, КОТОРЫЕ МОГУТ БЫТЬ ЮРИДИЧЕСКИМИ: = .. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.67.27 Код SQL: -104, Состояние SQL: 42601
У кого-нибудь есть предложения? Спасибо.
1 ответ
Решение
AFAIK, ты не можешь использовать YEAR()
установить значение в поле даты в любой платформе или версии DB2.
Придется заняться математикой
UPDATE SERDB.S16_WEB_USERS_T
SET S16_BIRTH_DT = S16_BIRTH_DT - (YEAR(S16_BIRTH_DT) - 1900) YEARS
WHERE YEAR(S16_BIRTH_DT) > '0';
Но я спрашиваю, почему вы хотите это сделать. Особенно с WHERE YEAR(S16_BIRTH_DT) > '0'
,
Также обратите внимание, что если дата рождения 29 февраля, дата будет изменена на 28 февраля 1900 года.