以毫秒为单位将字符串转换为时间戳

时间:2019-11-17 14:51:02

标签: sql apache-spark-sql sql-timestamp

我需要在Spark SQL 中将字符串值转换为时间戳,同时保留毫秒部分。字符串值为:{'2018-05-15 14:12:44.185'。我尝试type-cast,但它截断了毫秒部分。

select from_unixtime(unix_timestamp('2018-05-15 14:12:44.185', 'yyyy-MM-dd HH:mm:ss.SSS'))

任何人都可以帮忙,以便将毫秒部分也保留在结果值中吗?

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用function to_timestamp()将字符串转换为时间戳,例如:

select to_timestamp('2018-05-15 14:12:44.185', 'yyyy-MM-dd HH:mm:ss.SSS')

答案 1 :(得分:0)

尝试以下代码

df.withColumn("eventTime1", unix_timestamp('2018-05-15 14:12:44.185', "yyyy-MM-dd HH:mm:ss.SSS").cast(TimestampType))