我是 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
文件中的日期?
问问题
6821 次
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 回答