如何检查配置单元中的日期时间是否满足要求?

时间:2015-05-06 15:36:03

标签: sql datetime hadoop hive hql

我在蜂巢中有一张桌子:

# the description of table
desc baseinfo;

cv_id    string    None
cv_update    string    None
......

# data in table is like this
select cv_id, cv_update from baseinfo limit 1;

00001    2015-04-15 16:34:44

我想要做的是: 我想检查cv_update是否为Null,它应该符合格式要求,如下所示:

# is_format doesn't exist actually
SELECT cv_id, cv_update FROM baseinfo WHERE cv_update is NOT NULL AND cv_update.is_format("%Y-%m-%d %H:%M:%S")

3 个答案:

答案 0 :(得分:0)

我不确定为什么cv_update可以存储为日期/时间戳时存储为字符串。

无论如何,为了回答你的问题,你可以将cv_update转换为TIMESTAMP,它可以期望以(YYYY-MM-DD HH:MM:SS)格式输出。所有其他记录将显示为NULL。

然后,您可以使用带有cv_id / cv_update的记录过滤记录。

示例查询:

select * 
from (
    select cv_id, cast(cv_update AS TIMESTAMP)  
    from baseinfo b 
    where b.cv_id is not null) t 
where t.cv_update is not null.

这可能不是最佳解决方案;)

答案 1 :(得分:0)

您也可以尝试 -

select cv_id, cv_update 
from baseinfo 
where unix_timestamp(cv_update)>0;

此查询将检查NULL值以及YYYY-MM-DD HH:MM:SS格式。

答案 2 :(得分:0)

这对我来说听起来更好。

示例查询:

     if ( $section !="" ){
        $query .= " AND section IN($section)"; // selecting section
     }

$query .= " ORDER BY id DESC";
$result = mysql_query($query);