如何确定Cassandra查询的时间戳
插入表中的一个值是当前时间。我使用如何确定Cassandra查询的时间戳,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,插入表中的一个值是当前时间。我使用toTimestamp(now())计算当前时间。现在,我想计算当前时间减去90天,当前时间减去15天。 我的问题是如何计算当前时间-第n天 查询当前时间戳: INSERT INTO TABLE_NAME (col_1, col_2, col_3) VALUES ('val_1', toTimestamp(now()), val_3); 在上面的查询中,val_2是当前时间戳。当前时间戳由 toTimestamp(now()) 如何计算当前时间-90天,当前
toTimestamp(now())
计算当前时间。现在,我想计算当前时间减去90天,当前时间减去15天。
我的问题是如何计算当前时间-第n天
查询当前时间戳:
INSERT INTO TABLE_NAME (col_1, col_2, col_3) VALUES ('val_1', toTimestamp(now()), val_3);
在上面的查询中,val_2是当前时间戳。当前时间戳由
toTimestamp(now())
如何计算当前时间-90天,当前时间-2周此功能未内置于CQL中 如果您能够使用UDF,您可以(基于以下示例: )请执行以下操作: 通过在cassandra.yaml中添加此行或将其更改为true来根据需要启用UDF:
enable_user_defined_functions: true
然后像这样添加两个:
CREATE FUNCTION dateadd(date timestamp, daydiff int)
CALLED ON NULL INPUT
RETURNS timestamp
LANGUAGE java
AS $$java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);c.add(java.util.Calendar.DATE, daydiff);return c.getTime();$$
CREATE FUNCTION weekadd(date timestamp, weekdiff int)
CALLED ON NULL INPUT
RETURNS timestamp
LANGUAGE java
AS $$java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);c.add(java.util.Calendar.DATE, weekdiff*7);return c.getTime();$$
select dateadd(col_2,-90) from TABLE_NAME;
select weekadd(col_2,-2) from TABLE_NAME;
从表中选择数据,如下所示:
CREATE FUNCTION dateadd(date timestamp, daydiff int)
CALLED ON NULL INPUT
RETURNS timestamp
LANGUAGE java
AS $$java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);c.add(java.util.Calendar.DATE, daydiff);return c.getTime();$$
CREATE FUNCTION weekadd(date timestamp, weekdiff int)
CALLED ON NULL INPUT
RETURNS timestamp
LANGUAGE java
AS $$java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);c.add(java.util.Calendar.DATE, weekdiff*7);return c.getTime();$$
select dateadd(col_2,-90) from TABLE_NAME;
select weekadd(col_2,-2) from TABLE_NAME;
@Valerir Parham thompson,感谢您的回复。我在哪里定义UDF?我使用cassandra驱动程序通过python连接到DB,并执行cql。我应该将UDF作为python脚本的一部分添加吗?您需要在Cassandra中将UDF定义为模式的一部分。在执行cql时,您需要使用它们。请注意,UDF的逻辑语言默认支持Java。检查