2016-07-28 75 views
0

DB2 z/OS的版10更新YEAR上日期字段

對於表中的一列DATE我想的DATE的YEAR部分更新到1900。例如,更新1981-09-031900-09-03

我已經嘗試使用以下:

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月28日1900年

+0

的太感謝你了! – scddsn

+0

@scddsn,請將答案標記爲已接受。 – Charles