drop table partition_date_1; create table partition_date_1 (key string, value string) partitioned by (dt date, region int); insert overwrite table partition_date_1 partition(dt='2000-01-01', region=1) select * from src limit 10; insert overwrite table partition_date_1 partition(dt='2000-01-01', region=2) select * from src limit 5; insert overwrite table partition_date_1 partition(dt='2013-08-08', region=1) select * from src limit 20; insert overwrite table partition_date_1 partition(dt='2013-08-08', region=10) select * from src limit 11; select distinct dt from partition_date_1; select * from partition_date_1 where dt = '2000-01-01' and region = 2 order by key,value; -- 15 select count(*) from partition_date_1 where dt = date '2000-01-01'; -- 15. Also try with string value in predicate select count(*) from partition_date_1 where dt = '2000-01-01'; -- 5 select count(*) from partition_date_1 where dt = date '2000-01-01' and region = 2; -- 11 select count(*) from partition_date_1 where dt = date '2013-08-08' and region = 10; -- 30 select count(*) from partition_date_1 where region = 1; -- 0 select count(*) from partition_date_1 where dt = date '2000-01-01' and region = 3; -- 0 select count(*) from partition_date_1 where dt = date '1999-01-01'; -- Try other comparison operations -- 20 select count(*) from partition_date_1 where dt > date '2000-01-01' and region = 1; -- 10 select count(*) from partition_date_1 where dt < date '2000-01-02' and region = 1; -- 20 select count(*) from partition_date_1 where dt >= date '2000-01-02' and region = 1; -- 10 select count(*) from partition_date_1 where dt <= date '2000-01-01' and region = 1; -- 20 select count(*) from partition_date_1 where dt <> date '2000-01-01' and region = 1; drop table partition_date_1;