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';
我收到以下错误:
非法符号"("。一些可能是合法的符号是:=。。SQLCODE=-104,SQLSTATE=42601,DRIVER=3.67.27 SQL代码:-104,SQL状态:42601
有人有什么建议吗?非常感谢。
AFAIK,在任何平台或DB2版本中,都不能使用YEAR()
在日期字段中设置值。
要做一些数学
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';
但我质疑你为什么要这么做。尤其是CCD_ 6。
还要注意,如果出生日期是2月29日,则日期将更改为1900年2月28日。