我无法将字符串格式转换为日期格式。
val df7 = Seq(("01/01/2007 12:00:00 AM"),("01/01/2006 12:00:00 AM"), ("01/01/2008 12:00:00 AM"), ("01/01/2006 12:00:00 AM")).toDF("r1")
df7.show()
df7.select(col("r1"), to_date( substring(col("r1"), 0, 11), "MM/DD/YYYY") ).show()
注意,在输出中,它只转换具有2006年的字符串
+--------------------+
| r1|
+--------------------+
|01/01/2007 12:00:...|
|01/01/2006 12:00:...|
|01/01/2008 12:00:...|
|01/01/2006 12:00:...|
+--------------------+
+--------------------+---------------------------------------------+
| r1|to_date(substring(`r1`, 0, 11), 'MM/DD/YYYY')|
+--------------------+---------------------------------------------+
|01/01/2007 12:00:...| null|
|01/01/2006 12:00:...| 2006-01-01|
|01/01/2008 12:00:...| null|
|01/01/2006 12:00:...| 2006-01-01|
+--------------------+---------------------------------------------+
2条答案
按热度按时间lymnna711#
请用这条线
分析日期。
代码中有两个更改:
使用长度
10
而不是11
切断额外的空间格式字符串区分大小写,并使用java的SimpleDataFormat的格式字符
xmakbtuz2#
您不需要子字符串,但要给出确切的时间戳格式。