更新YEAR上日期字段
问题描述:
DB2 z/OS的版10更新YEAR上日期字段
对于表中的一列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 "(". SOME SYMBOLS THAT MIGHT BE LEGAL ARE: = .. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.67.27 SQL Code: -104, SQL State: 42601
有没有人有什么建议?谢谢。
答
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年
的太感谢你了! – scddsn
@scddsn,请将答案标记为已接受。 – Charles