在DATE字段上更新YEAR

时间:2016-07-28 14:27:57

标签: date db2 zos db2-zos

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

有没有人有任何建议?谢谢。

1 个答案:

答案 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日。

相关问题