我想使用Hive将日期'11 / 2/2014'转换为时间戳。 此日期采用字符串格式。 我尝试了很多方法,但我得到了NULL值。
答案 0 :(得分:0)
这是语法:
CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(<date_column>,'MM/dd/yyyy')) as TIMESTAMP)
您始终需要转到unix_timestamp,然后从unix时间戳转换为正常时间戳。它看起来并不好,但它确实有用。
要检查一下,可能是您的语法正确但格式错误。也许你的格式是dd / MM / yyyy?这就是为什么你应该给我们下次尝试让它工作的原因。
答案 1 :(得分:0)
仅使用字符串函数的替代方法:
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