[英]how to convert string format to date format in hive
我的表中有時間戳記和日期列。 我的日期和時間戳記列為字符串類型。 我需要將其轉換為DATE和TIMESTAMP格式。 但是我的數據格式是2/4/2017 3:03。 因此,當我將其轉換為TIMESTAMP數據類型時,它會給出NULL。 我們該怎么做才能解決這個問題?
這是我的示例日期和時間列數據。
2/3/2017 23:37
2/3/2017 23:37
2/3/2017 23:40
2/3/2017 23:50
2/3/2017 23:51
2/3/2017 23:53
2/3/2017 23:55
2/4/2017 0:08
2/4/2017 0:57
提前致謝
create table mytable (dt_tm string);
insert into mytable values
('2/3/2017 23:37')
,('2/3/2017 23:37')
,('2/3/2017 23:40')
,('2/3/2017 23:50')
,('2/3/2017 23:51')
,('2/3/2017 23:53')
,('2/3/2017 23:55')
,('2/4/2017 0:08' )
,('2/4/2017 0:57' )
;
select dt_tm
,cast(from_unixtime(unix_timestamp(dt_tm,'dd/MM/yyyy HH:mm'),'yyyy-MM-dd 00:00:00') as timestamp)
from mytable
;
+----------------+---------------------+
| 2/3/2017 23:37 | 2017-03-02 00:00:00 |
| 2/3/2017 23:37 | 2017-03-02 00:00:00 |
| 2/3/2017 23:40 | 2017-03-02 00:00:00 |
| 2/3/2017 23:50 | 2017-03-02 00:00:00 |
| 2/3/2017 23:51 | 2017-03-02 00:00:00 |
| 2/3/2017 23:53 | 2017-03-02 00:00:00 |
| 2/3/2017 23:55 | 2017-03-02 00:00:00 |
| 2/4/2017 0:08 | 2017-04-02 00:00:00 |
| 2/4/2017 0:57 | 2017-04-02 00:00:00 |
| 2/3/2017 23:37 | 2017-03-02 00:00:00 |
| 2/3/2017 23:37 | 2017-03-02 00:00:00 |
| 2/3/2017 23:40 | 2017-03-02 00:00:00 |
| 2/3/2017 23:50 | 2017-03-02 00:00:00 |
| 2/3/2017 23:51 | 2017-03-02 00:00:00 |
| 2/3/2017 23:53 | 2017-03-02 00:00:00 |
| 2/3/2017 23:55 | 2017-03-02 00:00:00 |
| 2/4/2017 0:08 | 2017-04-02 00:00:00 |
| 2/4/2017 0:57 | 2017-04-02 00:00:00 |
+----------------+---------------------+
你可以試試這個命令
unix_timestamp(日期,'MM / dd / yyyy h:mm:ss')
可能會解決您的問題。 我現在沒有蜂巢設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.