【问题标题】:Cassandra Timestamp behavior with Select query选择查询的 Cassandra 时间戳行为
【发布时间】:2019-05-25 04:41:25
【问题描述】:

我在 Cassandra 中有一个带有数据类型时间戳的列“postingdate”。我正在使用 Spring Data Cassandra 在发布时将当前日期/时间保存在此列中(Instant.now())。这是在 UTC 中插入日期/时间。

我必须选择在“2018-11-06”上发布的记录。在表中,我在该日期发布了一条记录,并且发布日期列在 UTC 中显示为“2018-11-07 04:25:24+0000”。

我正在运行以下查询 -

select * from mytable where id='5' and posteddate >= '2018-11-06 00:00:00' 和发布日期

无论时区如何,在开发中心控制台(或 CQLSH)上运行此查询都会给我相同的结果。我在 PST 和 IST 中都尝试过,得到了相同的结果。 Cassandra 是否在执行查询之前进行 PST -> UTC OR IST -> UTC 转换?如果是,那怎么办?

【问题讨论】:

    标签: cassandra-3.0 cqlsh spring-data-cassandra


    【解决方案1】:

    documentation:

    排除时区时,将其设置为客户端或协调器时区。

    您可以通过设置TZ 环境变量或在cqlshrc configuration file 中指定timezone 参数来为CQLSH 配置默认时区。

    【讨论】:

    • 谢谢@Alex。我的协调员时区在太平洋标准时间。所以我的问题是不考虑时区,如果有人想获得 11/06 的帖子,他们应该得到 1 个结果,因为实际上 1 个帖子发生在 11/06。我该怎么办?
    • 您应该始终使用存储在 GMT 中的日期,并在查询中对您的本地区域进行调整。处理数据的人可能不知道服务器在哪里,或者服务器可能被移动到另一个时区的其他 DC,然后会发生什么?
    猜你喜欢
    • 2014-12-01
    • 2017-03-30
    • 2017-04-30
    • 2016-05-30
    • 2022-12-04
    • 2018-12-29
    • 2016-10-20
    • 2015-05-22
    • 2017-03-12
    相关资源
    最近更新 更多