更新 DATE 字段上的 YEAR
Update the YEAR on a DATE field
DB2 z/OS 版本 10
对于 table 中的 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
有人有什么建议吗?谢谢你。
据我所知,您不能使用 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 日。
DB2 z/OS 版本 10
对于 table 中的 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
有人有什么建议吗?谢谢你。
据我所知,您不能使用 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 日。