CASE语句中的日期值

时间:2017-10-11 17:46:46

标签: sql db2

我得到SQL代码-182具有日期时间值的算术表达式无效

当我尝试运行这段代码时:

              (CASE
           WHEN YEAR(R.CURR_PRD_NDT) = 2014
                THEN 0
          WHEN YEAR(R.CURR_PRD_NDT) = 2015
                THEN 1
           WHEN YEAR(R.CURR_PRD_NDT) = 2016
                THEN 2
               END) YEAR,

其中R.CURR_PRD_NDT是DATE值。我该如何解决?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您将year作为别名,则会出现错误,尝试将其更改为其他名称

(CASE
WHEN YEAR(R.CURR_PRD_NDT) = 2014
THEN 0
WHEN YEAR(R.CURR_PRD_NDT) = 2015
THEN 1
WHEN YEAR(R.CURR_PRD_NDT) = 2016
THEN 2
END) as YEAR_value

答案 1 :(得分:1)

你不应该使用YEAR作为别名;这是一个保留的函数名称。