Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确定Cassandra查询的时间戳_Cassandra_Cassandra 2.0 - Fatal编程技术网

如何确定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。检查