2017-02-23 51 views
0

我的表格中有时间戳和日期列。我的日期和时间戳列是字符串类型。我需要将它转换为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

显示你试过的代码? –

+0

d/M/yyyy或M/d/yyyy? –

回答

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 | 
+----------------+---------------------+ 
+0

谢谢你这个作品。但是我需要从这个字段中提取日期以找出明智的生产力并将该字段的数据类型更改为TIMESTAMP。 – user77

+0

更改您的帖子以反映您的真实请求。我会在15分钟内向您发送解决方案 –

+0

查看更新后的答案 –

0

你可以试试这个命令

unix_timestamp(日期,'MM/dd/yyyy h:mm:ss')

可能会解决您的问题。我现在没有配置蜂巢。