Apache spark 字符串到日期的格式转换导致空数据块
我已将日期保存为以下格式:Apache spark 字符串到日期的格式转换导致空数据块,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我已将日期保存为以下格式: +-------------------------+ | timex (varchar) | +-------------------------+ | 20200303 | +-------------------------+ 我希望输出/转换值为Databricks SQL中的日期/时间格式 应该是: +-------------------------+ | timex |
+-------------------------+
| timex (varchar) |
+-------------------------+
| 20200303 |
+-------------------------+
我希望输出/转换值为Databricks SQL中的日期/时间格式
应该是:
+-------------------------+
| timex |
+-------------------------+
| 2020-03-03 00:00:00.000 |
+-------------------------+
尝试:
选择时间戳(timex)
-->结果为1970 xx xx xx选择时间戳(timex,'yyyy/MM/dd HH:MM:ss.ssssss')
-->表示参数1中的数据类型应为字符串或日期选择时间戳(转换为字符串形式的timex),'yyyyy/MM/dd HH:MM:ss.ssssss')
-->NULL选择到日期(timex)
-->空convert(datetime,cast(timex作为nvarchar),103)
如果我使用cast(timex作为字符串)作为xx-->它可以工作
但是,我使用时间戳(cast(timex作为字符串),'yyyyymmdd')作为t-->它给出null
我还尝试将字符串格式化为_timestamp(格式化_string(“%8d”,cast(timex as string)),“yyyyymmdd”)-->getting exception:IllegalFormatConversionException您需要使用
转换为_timestamp
转换为时间戳,然后使用日期
转换为所需格式:
select date_format(to_timestamp(format_string('%8d', timex), 'yyyyMMdd'), 'yyyy-MM-dd HH:mm:ss.SSS')
from mytable;
不,这在Databricks中也是NULL。timex可能是一个整数。试着先选线。请参阅编辑后的答案。我尝试将-date_格式(to_timestamp(转换为字符串形式的timex)、'yyyyMMdd')、'yyyy-MM-dd HH:MM:ss.SSS')作为xyz。您是否可以显示
select cast(timex作为字符串)
?您是否可以显示select date\u格式(to\u timestamp('20200303','yyyyMMdd'),'yyyy-MM-dd HH:MM:ss.SSS')的结果
?