【问题标题】:Cassandra store timestamps as stringsCassandra 将时间戳存储为字符串
【发布时间】:2017-10-07 18:11:28
【问题描述】:

我知道 Cassandra 有一个时间戳数据类型。我正在使用它,但我遇到了一些麻烦(特别是时区)。我的问题是,使用字符串存储“2014-05-09 14:12:00”而不是时间戳类型的缺点是什么(如果存在)?

我已经尝试使用运算符 >、>=、

谢谢

【问题讨论】:

  • 为什么时区会成为问题?
  • 不知道,我无法弄清楚问题出在哪里,但是如果在冬季加载,所有内容都会插入 +1 小时,而在夏季时一切正常。当然,这种差异在查询时会造成很多麻烦。
  • @MauricePerry,问题在于夏令时。如果我在冬天存储带有时区偏移的时间戳,则时间戳存储为 UTC,如果我在夏天查询相同的记录,并将其从 UTC 转换为本地时间,则结果将具有等于夏令时偏移量的差异.
  • @RADU 检索时使用的偏移量取决于您检索的时间戳,而不是当前日期/时间。

标签: cassandra timestamp cqlsh


【解决方案1】:

除非您想格式化日期,否则您无需担心时区。如果您存储格式化的日期而不是时间戳,则 if 仅在格式化的时区中是正确的。

【讨论】:

    【解决方案2】:

    Cassandra 时间戳类型存储为长值(自纪元以来的时间),允许范围查询(、>=)。这些不能在字符串类型上执行。仅支持 = 和 in 查询。

    【讨论】:

      猜你喜欢
      • 2017-04-10
      • 1970-01-01
      • 2020-11-22
      • 2015-04-02
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      相关资源
      最近更新 更多