Hive Case 语句参数类型不匹配

Hive Case Statement Argument Type Mismatch with

当我在 Hive 中 运行 下面的代码时出现以下错误:

04:08:12 [SELECT - 0 行,0.096 秒] [代码:40000,SQL 状态:42000] 编译语句时出错:失败:SemanticException 行 0:-1参数类型不匹配“2018-02-14”:WHEN 之后的表达式应与 CASE 之后的表达式具有相同的类型:预期 "date" 但发现 "boolean"

Select
            case shipped_date
                    when shipped_date between cast ('2018-02-01' as date) and cast ('2018-02-14' as date) then 1
                    when shipped_date between cast ('2018-02-18' as date) and cast( '2018-03-03'as date) then 2
                    when shipped_date between cast ('2017-02-01' as date) and cast ('2017-02-14'as date) then 3
                    when shipped_date between cast ('2017-03-12' as date) and cast ('2017-03-25' as date) then 4
                    when shipped_date between cast('2018-04-30' as date) and cast ('2018-05-13'as date) then 5
                    when shipped_date between cast ('2018-03-27' as date) and cast('2018-04-09'as date) then 6
                    when shipped_date between cast('2017-04-28'as date) and cast ('2017-05-14'as date) then 7
                    when shipped_date between cast ('2017-03-26' as date) and cast ('2017-04-11' as date) then 

            end as test_period,department_name
            from my_table;

有谁知道如何解决这个错误?

谢谢!

选择一种 CASE 语法,不要混合使用!

case EXPRESSION when EXPR_VALUE then OUT_VALUE

case when CONDITION then OUT_VALUE

因此,只需删除您的 CASE 后的 "shipped_date"。