You cannot do it in cassandra. Moreover, such a range slicing is costlier too. You are trying to slice through a set of equalities that have the lower priority according to your schema.
I also need to query those table with all keya, keyb, keyc, and date.
If you are considering to solve this problem, considering having this schema. What i would suggest is to have the keys in a separate schema
create table ( timeuuid id, keyType text, primary key (timeuuid,keyType))
Use the timeuuid to store the values and do a range scan based on that.
create table( timeuuid prevTableId, value int, date timestamp, primary key(prevTableId,date))
Guess , in this way, your table is normalized for better scalability in your use case and may save a lot of disk space if keys are repetitive too.