2016-07-28 3 views
0

のDB2 z/OSのバージョン10更新YEAR DATEフィールドに

Iは、例えば1900にDATEの年の部分を更新1900-09-031981-09-03を更新したい表のDATE列について。

私は、以下のものを使用して試みた:

UPDATE SERDB.S16_WEB_USERS_T 
     SET YEAR(S16_BIRTH_DT) = '1900' 
    WHERE YEAR(S16_BIRTH_DT) > '0'; 

私は次のエラーが表示されます

ILLEGAL SYMBOL "(". SOME SYMBOLS THAT MIGHT BE LEGAL ARE: = .. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.67.27 SQL Code: -104, SQL State: 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'の場合。

も誕生日が2月29日にある場合、日付は2月1900

+0

の28日に変更されますのでご注意ありがとうございました! – scddsn

+0

@scddsn、回答を受け入れたものとしてマークしてください。 – Charles

関連する問題