我在表格中列出时间戳和日期。我的日期和时间戳列是字符串类型。我需要将其转换为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
提前致谢
答案 0 :(得分:1)
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 |
+----------------+---------------------+
答案 1 :(得分:0)
你可以尝试这个命令
unix_timestamp(日期,'MM / dd / yyyy h:mm:ss')
可能会解决您的问题。我现在没有配置蜂巢。