我有一个域类,下面是声明:
class Emp{
static mapWith = "cassandra"
String name
Date doj
}
data:
id name doj
1 X 01-01-2010
2 Y 01-20-2012
卡桑德拉查询:
select * from emp_schema.emp where doj='01-01-2010';
错误: code = 2200 [Invalid query] message =“无法将'01 -01-2010'强制转换为格式化日期(长)”
答案 0 :(得分:2)
cassandra中查询日期的格式为yyyy-mm-dd
答案 1 :(得分:0)
class SomeGroovyClass {
def method(){
new SomeJavaClass().method("USD")
}
}
卡洛斯(Carlos)是正确的,因为卡桑德拉(Cassandra)要求将日期格式设置为select * from emp_schema.emp where doj='01-01-2010';
。
但是此查询仅在yyy-mm-dd
是您的分区键时有效。 如果未设置您的PRIMARY KEY来指示doj
作为分区键,则无法查询。
我将专门设计适合您查询的表。该定义在doj
上进行分区,并在doj
上进行群集以确保唯一性,因为多个emp [loyee]可能具有相同的id
:
doj
然后,您可以按特定日期查询,并为其返回多个行:
create table emp_by_doj (
doj date,
id int,
name text,
primary key (doj,id));