【问题标题】:Converting '03/11/2019 11:45:00' to hive timestamp将 '03/11/2019 11:45:00' 转换为 hive 时间戳
【发布时间】:2019-08-14 02:13:14
【问题描述】:

我有'3/20/2019 17:23:00''2/1/2019 11:44:00' 格式的日期,当我在hive 中将类型指定为时间戳时,它们以null 的形式出现。我正在尝试使用以下代码将其转换为,但我不确定它是否不可能,或者我是否错误地指定了模式。

例如,这些日期变量之一称为“on_dtml”

from_unixtime(unix_timestamp(on_dtml, 'MM/DD/YY HH:MM:SS'))

我将值作为字符串格式写入一个表中,在时间戳中定义了第二个表,现在我正在尝试使用上面的代码将它们作为字符串存储的表中的值写入第二个表.请帮忙

insert into table test_table 
select variable1 string, from_unixtime(unix_timestamp(on_dtml, 'MM/DD/YY HH:MM:SS'));

【问题讨论】:

    标签: sql hive timestamp hiveql


    【解决方案1】:

    正确的模式是'MM/dd/yyyy HH:mm:ss':

     from_unixtime(unix_timestamp(on_dtml, 'MM/dd/yyyy HH:mm:ss'));
    

    在此处阅读有关格式模式的信息:SimpleDateFormat 大写/小写在模式中很重要。

    select from_unixtime(unix_timestamp('3/20/2019 17:23:00', 'MM/dd/yyyy HH:mm:ss'));
    

    结果:

    2019-03-20 17:23:00
    

    再测试一次:

    select from_unixtime(unix_timestamp('2/1/2019 11:44:00', 'MM/dd/yyyy HH:mm:ss'));
    

    结果:

    2019-02-01 11:44:00
    

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      相关资源
      最近更新 更多