Spark to_date 生成奇怪的 5 位数年份
Spark to_date generates strange 5 digit year
我在 HUE 编辑器中针对 HIVE table 发出了以下 select 语句并得到了以下结果。
SELECT statestartdate,
to_date(from_unixtime(statestartdate, 'yyyy-MM-dd HH:mm:ss')) AS statestartdatestr
FROM processmining.InstanceUserPerformance limit 100
结果
statestartdate statestartdatestr
1363782909107 45186-07-24
问题
在 'statestartdatestr' 字段的年份区域,出于某种奇怪的原因我得到 45186!?谁能指出为什么请?谢谢。
你的 statestartdate
好像是自 Unix 纪元以来的毫秒数。根据 Cloudera docs.
,函数 from_unixtime
从 Unix 纪元开始 秒
因此,如果您想将 statestartdate
转换为秒和日期数据类型,您可以尝试这样的操作...
SELECT statestartdate,
to_date(
from_unixtime(
floor(statestartdate / 1000),
'yyyy-MM-dd HH:mm:ss'
)
) AS statestartdatestr
FROM processmining.InstanceUserPerformance LIMIT 100
我在 HUE 编辑器中针对 HIVE table 发出了以下 select 语句并得到了以下结果。
SELECT statestartdate,
to_date(from_unixtime(statestartdate, 'yyyy-MM-dd HH:mm:ss')) AS statestartdatestr
FROM processmining.InstanceUserPerformance limit 100
结果
statestartdate statestartdatestr
1363782909107 45186-07-24
问题 在 'statestartdatestr' 字段的年份区域,出于某种奇怪的原因我得到 45186!?谁能指出为什么请?谢谢。
你的 statestartdate
好像是自 Unix 纪元以来的毫秒数。根据 Cloudera docs.
from_unixtime
从 Unix 纪元开始 秒
因此,如果您想将 statestartdate
转换为秒和日期数据类型,您可以尝试这样的操作...
SELECT statestartdate,
to_date(
from_unixtime(
floor(statestartdate / 1000),
'yyyy-MM-dd HH:mm:ss'
)
) AS statestartdatestr
FROM processmining.InstanceUserPerformance LIMIT 100