DB2 z / OS版本10
对于表格中的DATE
列,我想将DATE
的YEAR部分更新为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';
我收到以下错误:
ILLEGAL SYMBOL“(”。可能是法律的一些符号:= .. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 3.67.27 SQL代码:-104,SQL 州:42601
有没有人有任何建议?谢谢。
答案 0 :(得分: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日,则日期将更改为1900年2月28日。