Hadoop 转换日期';2014年2月11日&x27;(mm/d/yyyy)插入配置单元中的时间戳
我想使用Hive将日期“11/2/2014”转换为时间戳。 此日期为字符串格式。 我尝试了很多方法,但得到的是空值。这是语法:Hadoop 转换日期';2014年2月11日&x27;(mm/d/yyyy)插入配置单元中的时间戳,hadoop,hive,Hadoop,Hive,我想使用Hive将日期“11/2/2014”转换为时间戳。 此日期为字符串格式。 我尝试了很多方法,但得到的是空值。这是语法: CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(<date_column>,'MM/dd/yyyy')) as TIMESTAMP) CAST(从UNIX时间(UNIX时间戳(,'MM/dd/yyyy')转换为时间戳) 您始终需要转到unix_时间戳,然后从unix时间戳转换为正常时间戳。看起来不太好,但很管用 检查一下,可能是语法正
CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(<date_column>,'MM/dd/yyyy')) as TIMESTAMP)
CAST(从UNIX时间(UNIX时间戳(,'MM/dd/yyyy')转换为时间戳)
您始终需要转到unix_时间戳,然后从unix时间戳转换为正常时间戳。看起来不太好,但很管用
检查一下,可能是语法正确,但格式错误。也许您的格式是dd/MM/yyyy?这就是为什么您下次应该尝试让它工作的原因。这是语法:
CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(<date_column>,'MM/dd/yyyy')) as TIMESTAMP)
CAST(从UNIX时间(UNIX时间戳(,'MM/dd/yyyy')转换为时间戳)
您始终需要转到unix_时间戳,然后从unix时间戳转换为正常时间戳。看起来不太好,但很管用
检查一下,可能是语法正确,但格式错误。也许您的格式是dd/MM/yyyy?这就是为什么您下次应该尝试让它工作的原因。仅使用字符串函数:
SELECT CAST(
CONCAT(
REGEX_REPLACE(
REGEX_REPLACE( dirty_date
, '^([0-9]*)/([0-9]*)/([0-9]*)$','$3-0$1-0$2')
, '-0([0-9][0-9])','-$1')
, ' 00:00:00')
AS TIMESTAMP)
FROM dirty_input
仅使用字符串函数的替代方法:
SELECT CAST(
CONCAT(
REGEX_REPLACE(
REGEX_REPLACE( dirty_date
, '^([0-9]*)/([0-9]*)/([0-9]*)$','$3-0$1-0$2')
, '-0([0-9][0-9])','-$1')
, ' 00:00:00')
AS TIMESTAMP)
FROM dirty_input
为了改进这个问题,还请包括您为Convert编写的代码。现在您必须编写自定义自定义自定义自定义项。日期值以YYYY-MM-DD的形式表示。例如:日期“2014-12-07”。允许的日期范围为0000-01-01到9999-12-31。时间戳使用格式yyyy-mm-dd hh:mm:ss[.f..]。强制转换(字符串为日期)--如果字符串的格式为“YYYY-MM-DD”,则返回与之对应的日期值。如果字符串值与此格式不匹配,则返回NULL。来源-为了改进问题,请同时提供您为Convert编写的代码。现在您必须编写自定义自定义自定义自定义项。日期值以YYYY-MM-DD的形式表示。例如:日期“2014-12-07”。允许的日期范围为0000-01-01到9999-12-31。时间戳使用格式yyyy-mm-dd hh:mm:ss[.f..]。强制转换(字符串为日期)--如果字符串的格式为“YYYY-MM-DD”,则返回与之对应的日期值。如果字符串值与此格式不匹配,则返回NULL。资料来源-效果很好。我缺少语法。非常感谢:-)它工作得很好。我缺少语法。非常感谢:-)