date - 如何在配置单元中将字符串格式转换为日期格式

标签 date hadoop hive hiveql datetime-format

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

关于date - 如何在配置单元中将字符串格式转换为日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42407077/

相关文章:

javascript - 需要找出 javascript 应用程序中没有日期的计时之间的差异

java - hadoop中的多个输出

python - Impala 查询在 Pyspark 中返回错误结果

hadoop - 在特定列上选择不同但也在配置单元中选择其他列

hadoop - 托管表不包含任何数据,而外部表中存在数据-在Hive中

java - AM/PM 的 SimpleDateFormat 解析错误

java - 使用PreparedStatement将java.sql.Date更新到数据库中

mysql - 格式化mysql中的日期字段

hadoop - Hive 动态分区

bash - Hbase 命令在通过 crontab 执行的脚本中不起作用