2015-05-06 10 views
0

我有一個表在蜂巢:如何查看蜂巢中的日期時間字符串是否符合要求?

# 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是空,它應該符合格式要求,這樣的事情:

# 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") 

回答

0

我不確定爲什麼cv_update被存儲爲字符串,因爲它可以存儲爲日期/時間戳。

不管怎麼說,要回答你的問題,你可以將cv_update強制轉換爲TIMESTAMP,它將以(YYYY-MM-DD HH:MM:SS)格式輸出。所有其他記錄將顯示爲NULL。

然後,您可以使用cv_id/cv_update過濾帶有NULL的記錄。

樣本查詢:

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. 

這可能不是一個最佳的解決方案,雖然;)

+0

我不知道爲什麼cv_update被存儲爲字符串,我只是得到這個數據庫昨日 – roger

0

您也可以嘗試 -

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

這個查詢將檢查NULL值,以及YYYY-MM-DD HH:MM:SS格式。

0

清楚,聽起來更好的選擇我。

樣本查詢:

SELECT cv_id, cv_update 
FROM baseinfo b 
WHERE b.cv_update IS NOT NULL. and CAST(b.cv_update AS TIMESTAMP) IS NOT NULL. 
相關問題