3

我是 Cassandra cql 的新手(cqlsh 4.1.1、Cassandra 2.0.8.39、CQL 规范 3.1.1、Thrift 协议 19.39.0) - 使用 cql COPY 命令从 CSV 格式文件到表,我收到以下错误:
Bad Request: unable to coerce '2012/11/11' to a formatted date (long).
如何更改列 usingcql以便它接受我CSV文件中的日期?

4

2 回答 2

10

正如布赖恩所说,有 CQL 时间戳类型可以让 CQL 查询运行。有时看起来确实很奇怪!几周前我遇到了同样的问题,日期时间插入如下:

INSERT INTO my_table (id,lastvisitdate) VALUES (1682221,'2012-03-25 02:26:04');

我收到此错误:错误请求:无法将“2012-03-25 02:26:04”强制转换为格式化日期(长)!嗯......太糟糕了,因为日期时间似乎是正确的!

经过多次尝试,在发疯之前,我刚刚在时间末尾添加了一个 Z,Z 代表 Zulu 时间,它也是 UTC 和 GMT:

INSERT INTO my_table (id,lastvisitdate) VALUES (1682221,'2012-03-25 02:26:04Z');

是的!有用 !所以不要忘记您的日期时间值中的时区,这可能会有所帮助!;-)

于 2015-01-23T09:59:55.617 回答
3

在 CQLSH 中没有直接的方法可以做到这一点。

有一组可以强制的字符串日期格式。有关以下示例,请参阅CQL 时间戳类型文档页面:

yyyy-mm-dd HH:mm
yyyy-mm-dd HH:mm:ss
yyyy-mm-dd HH:mmZ
yyyy-mm-dd HH:mm:ssZ
yyyy-mm-dd'T'HH:mm
yyyy-mm-dd'T'HH:mmZ
yyyy-mm-dd'T'HH:mm:ss
yyyy-mm-dd'T'HH:mm:ssZ
yyyy-mm-dd
yyyy-mm-ddZ

作为一种解决方法,您可以修改 CSV 文件以调整日期格式,然后将其导入。(在您的情况下,它可能像“yyyy/mm/dd”->“yyyy-mm-dd”一样简单。)

于 2014-08-28T20:24:59.810 回答