Impala 将字符串转换为时间戳总是返回 NULL

Posted

技术标签:

【中文标题】Impala 将字符串转换为时间戳总是返回 NULL【英文标题】:Impala convert string to timestamp always returns to NULL 【发布时间】:2021-08-02 21:45:42 【问题描述】:

我想将 dd/mm/yyyy hh:mm:ss 字符串转换为日期格式。

select to_timestamp('19/05/2010 20:03:55', 'dd/mm/yyyy hh:mm:ss');

这不会将字符串转换为时间格式,并且总是返回 NULL。

请指导我哪里出错了。

【问题讨论】:

【参考方案1】:

您需要使用正确的格式。

 select to_timestamp('19/05/2010 20:03:55', 'dd/MM/yyyy HH:mm:ss') as ts;

模式字符串支持以下 Java SimpleDateFormat 子集。

Pattern Description
y       Year
M       Month
d       Day
H       Hour
m       Minute
s       Second
S       Fractional second

包含所有字段的日期字符串可以是 'yyyy-MM-dd HH:mm:ss.SSSSSS'、'dd/MM/yyyy HH:mm:ss.SSSSSS'、'MMM dd, yyyy HH.mm。 ss (SSSSSS)' 或其他占位符和分隔符的组合。

【讨论】:

模式字母绝不是特定于旧的和麻烦的SimpleDateFormat 类。请参阅 Unicode Date Field Symbol Table。 可能是,但上面的SimpleDate 格式信息在他们的官方网站上,所以我把它贴在这里。此代码也适用于我的版本。不确定新的简单数据格式规则。

以上是关于Impala 将字符串转换为时间戳总是返回 NULL的主要内容,如果未能解决你的问题,请参考以下文章

在 Hive 或 Impala 中从 int 转换为时间戳

如何将日期和时间转换为时间戳

swift 将字符串转换为时间戳

Pyspark 列:将字符串格式的数据转换为时间戳格式

使用 PySpark 将日期和时间字符串转换为时间戳时如何保留毫秒?

php怎么将指定日期转换为时间戳