Я использую cassandra 2.2.3 и ниже моя структура таблицы для хранения doj как объекта даты.
Table structure:
class Emp{
String name
Date doj
}
empdata:
id name doj
1 Test 2010-01-01 00:00:00+0000
2 Test1 2011-01-01 00:00:00+0000
Я должен использовать оператор больше или меньше, чтобы выбирать сотрудников между этими датами.
Из json я получаю следующий вход для отображения данных.
{
"dateFrom":'1/1/2010'
}
// Модифицированная строка до даты с использованием SimpleDateFormat
Date d1 = f.parse(dateFrom);
long milliseconds = d1.getTime();
// Запрос вызова с использованием оператора gte для извлечения данных из Кассандры
Select selectQuery = QueryBuilder.select().all().from(tableName).allowFiltering()
Where selectWhere = selectQuery.where();
rangeClause(selectWhere,dateFrom,Tue Jan 01 00:00:00 PST 2010);
Statement s = selectWhere.limit(1)
println("st is:"+s);
In the select statement i see the query as "SELECT * FROM emp WHERE doj>=1551427200000 LIMIT 1;
//Function Call
def rangeClause(Where selectWhere, String columnName, Object columnValue)
{
Clause whereClause = null
whereClause= QueryBuilder.gte(columnName, columnValue.get("dateFrom"))
selectWhere.and(whereClause)
}