gpt4 book ai didi

cassandra - Cassandra 中的 TimeUUID 与时间戳?

转载 作者:行者123 更新时间:2023-12-03 17:05:50 27 4
gpt4 key购买 nike

如果我们可以从 TimeUUID 中提取时间,那么在 Cassandra 中使用时间戳作为另一列是否有意义?

另外,我们如何从 TimeUUID 中提取时间并对其进行范围查询(例如 2016 年 1 月至 2016 年 5 月)?

最佳答案

Timeuuid 函数

现在

now 函数不接受任何参数,并在协调器节点上生成一个新的唯一 timeuuid(在执行使用它的语句的时间)。请注意,此方法对于插入很有用,但在 WHERE 子句中基本上没有意义。例如,表单的查询
SELECT * FROM myTable WHERE t = now()永远不会按设计返回任何结果,因为 now() 返回的值保证是唯一的。
minTimeuuidmaxTimeuuid
minTimeuuid (resp. maxTimeuuid) 函数采用时间戳值 t(可以是时间戳或日期字符串)并返回对应于时间戳 t 的最小(或最大)可能 timeuuid 的伪 timeuuid。所以例如:
SELECT * FROM myTable WHERE t > maxTimeuuid('2013-01-01 00:05+0000') AND t < minTimeuuid('2013-02-02 10:00+0000')将选择 timeuuid 列 t 严格早于 2013-01-01 00:05+0000 的所有行但严格小于 2013-02-02 10:00+0000 .请注意 t >= maxTimeuuid('2013-01-01 00:05+0000')仍然不会选择恰好在 2013-01-01 00:05+0000 生成的 timeuuid并且本质上等同于 t > maxTimeuuid('2013-01-01 00:05+0000') .

Functions table

警告:我们将 minTimeuuid 和 maxTimeuuid 生成的值称为假 UUID,因为它们不遵守 RFC 4122 指定的 Time-Based UUID 生成过程。特别是,这 2 个方法返回的值将不是唯一的。这意味着您应该只使用这些方法进行查询(如上例所示)。插入这些方法的结果几乎肯定是一个坏主意。

时间转换功能

提供了许多函数来将 timeuuid、时间戳或日期“转换”为另一种 native 类型。

关于cassandra - Cassandra 中的 TimeUUID 与时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37498666/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com