【问题标题】:date column which is a text type in Cassandra.so I need a UDF to convert that text to timestamp so I can query on that column日期列是 Cassandra 中的文本类型。所以我需要一个 UDF 将该文本转换为时间戳,以便我可以查询该列
【发布时间】:2019-05-21 14:20:20
【问题描述】:

我已经编写了类似 belo 的代码,但出现如下错误:-

InvalidRequest:来自服务器的错误:code=2200 [Invalid query]message="Java 源代码编译失败:第 1 行:java.util.String 无法解析为类型第 1 行:令牌“日期”上的语法错误,@预期的第 4 行:SimpleDateFormat 无法解析为类型

 CREATE FUNCTION saumya.text2dt ( input text )
 RETURNS NULL ON NULL INPUT
 RETURNS timestamp 
 LANGUAGE java
 AS $$
java.text.ParseException
java.text.SimpleDateFormat
java.util.Date
String ms = input;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd   HH:mm:ss.SSS");
Date date = sdf.parse(ms);
return sdf.format(date);        
$$

【问题讨论】:

    标签: cassandra cassandra-2.0 cassandra-3.0 cassandra-2.1


    【解决方案1】:

    创建 UDF 语法:

     CREATE FUNCTION text2dt ( input text )
     RETURNS NULL ON NULL INPUT
     RETURNS timestamp 
     LANGUAGE java
     AS '
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd   HH:mm:ss.SSS");
    try{
    java.util.Date date = sdf.parse(input);
    return date;  
    }catch(Exception e){
    return null;
    }      
    ';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2020-12-29
      • 2011-05-20
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多