"CREATE TABLE IF NOT EXISTS part_prices_by_context_run_at ( "
+ "context text, run_at timestamp,feed_type text, "
+ "part text, price double, "
+ "PRIMARY KEY ((context, run_at), part))"
"INSERT INTO part_prices_by_context_run_at (context,run_at,feed_type,part,price)" +
“VALUES('US | en-us | consumer','2014-12-10 01:00:00','partial','MXFL1 / A',236.29)”
String oldstring = "2014-12-10 01:00:00";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = format.parse(oldstring);
PartPricesByContextRunAtKeyImpl key = new PartPricesByContextRunAtKeyImpl();
key.setContext("US|en-us|consumer");
key.setRunAt(date);
Collection<PartPricesByContextRunAt> partPrices = dao.retrievePartPrices(key);
Assert.assertNotNull(partPrices);
断言失败,因为partPrices始终为null并且抛出错误
错误:无法将'2014年12月10日01:00:00太平洋标准时间'强制转换为格式化日期(长)
在查询时看起来,日期变为'2014年12月10日01:00:00太平洋标准时间',但插入的内容是不同的格式,即'2014-12-10 01:00:00'
答案 0 :(得分:1)
由于run_at
是时间戳数据类型,我猜你应该将run_at
的值设置为Long并比较以毫秒为单位的时间。
key.setRunAt(date.getTime());
在检索之后,您可以比较时间毫秒。
import com.datastax.driver.core.Row
row.getDate("run_at").getTime()