【问题标题】:select query on cassandra with where clause field as timestamp在 cassandra 上选择查询,其中 where 子句字段作为时间戳
【发布时间】:2016-05-30 12:29:12
【问题描述】:

我需要使用带有字段作为时间戳数据类型的 where 子句运行选择查询。

在方案中,提交日期的数据类型是时间戳

"SUBMIT_DATE" timestamp,

select "SUBMIT_DATE" from "MESSAGES_2016_02_18";

 SUBMIT_DATE
--------------------------
 2016-02-18 16:26:14+0530

(1 rows)

但是当我尝试时

select * from "MESSAGES_2016_02_18" where "SUBMIT_DATE"='2016-02-18 16:26:14+0530';

(0 rows)

谁能告诉我如何得到想要的结果?

表格是:

CREATE TABLE "MESSAGES_2016_02_18" (
  "ADDR_DST_DIGITS" ascii,
  "ID" uuid,
  "SUBMIT_DATE" timestamp,
  "TARGET_ID" ascii,
  "VALIDITY_PERIOD" timestamp,
  PRIMARY KEY (("ADDR_DST_DIGITS"), "ID")
) WITH
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='';

我创建了一个索引以及“SUBMIT_DATE”不是主键

create INDEX fetch_date ON "TelestaxSMSC"."MESSAGES_2016_02_18" ("SUBMIT_DATE");

请告诉我如何通过上述查询获取详细信息。

【问题讨论】:

  • 您能提供您的 CREATE TABLE 脚本吗?
  • CREATE TABLE "MESSAGES_2016_02_18" ("ADDR_DST_DIGITS" ascii,"SUBMIT_DATE" 时间戳, "TARGET_ID" ascii, "VALIDITY_PERIOD" 时间戳, PRIMARY KEY (("ADDR_DST_DIGITS"), "ID") ) ;
  • 由于评论限制不允许,我无法提供整个表格,
  • 您也可以编辑您的问题并添加您的创建表语句
  • 您是否碰巧以毫秒为单位插入时间戳?如果是这样,这可能会对您有所帮助:stackoverflow.com/questions/28547616/…

标签: cassandra


【解决方案1】:

嗯,看起来时区配置有问题。我以前见过这个问题。

  • 您的 Cassandra 版本是多少?
  • Cassandra 服务器时间设置为 UTC 吗?
  • 您运行的服务器 cqlsh 时间设置为 UTC 吗?

【讨论】:

  • cassandra 版本为 2.0.9。
  • 日期是运行 cqlsh 的服务器上的 IST,cqlsh 是从存在 cassandra db 的同一台服务器上运行的
猜你喜欢
  • 1970-01-01
  • 2019-05-25
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 2020-06-29
  • 2020-08-18
  • 2017-11-14
  • 1970-01-01
相关资源
最近更新 更多