如何在Spark SQL API中将YYYY-MM-DD格式日期转换为YYYYMMDD格式
Spark SQL日期格式转换(YYYY-MM-DD转YYYYMMDD)纯SQL实现方案
以下两种方式均为原生Spark SQL语法,无需依赖DataFrame API或PySpark相关能力,直接在SQL语句中调用即可:
方案1:使用
date_format日期格式化函数(推荐,兼容性更强)
该函数会自动识别合法的日期类输入(日期类型/可转换为日期的字符串),按照指定格式输出:-- 直接传入日期字符串示例 SELECT date_format('2021-11-25', 'yyyyMMdd') AS formatted_date; -- 处理表字段的写法,加to_date更稳妥,避免隐式转换异常 SELECT date_format(to_date(date_col), 'yyyyMMdd') AS formatted_date FROM your_table;输出结果为:
20211125方案2:使用
regexp_replace正则替换函数
如果你确定输入的日期字符串严格遵循YYYY-MM-DD格式,没有其他异常格式,可以直接用正则替换删除横杠,写法更简洁:SELECT regexp_replace('2021-11-25', '-', '') AS formatted_date FROM your_table;输出结果同样为:
20211125
注意:如果输入字段的日期格式非标准YYYY-MM-DD,建议在
to_date函数中指定输入格式,比如to_date(date_col, 'yyyy-MM-dd'),避免不同环境下的日期解析规则差异导致报错。
内容的提问来源于stack exchange,提问作者user1254579
相关产品推荐
相关产品推荐

