Spark SQL中可将时间戳转为指定格式的TO_CHAR等价函数是什么
Spark SQL 时间戳转指定格式字符串的等价实现
Spark SQL 中存在和TO_CHAR功能完全等价的转换函数,具体用法如下:
核心函数说明
- 全版本通用函数:
date_format,所有Spark版本均支持,是实现该需求的标准函数 - 兼容别名:Spark 3.0及以上版本直接支持
TO_CHAR作为date_format的别名,几乎可以无缝复用传统数据库的写法
格式符注意事项
Spark的时间格式符和Oracle等传统数据库存在微小差异,不需要写HH24,直接用HH代表24小时制即可,常用格式符对应规则:
yyyy:4位年份(如2024)MM:2位月份(01~12,注意大写,小写mm代表分钟,是高频写错的点)dd:2位日期(01~31)HH:24小时制小时(00~23)mm:2位分钟(00~59)ss:2位秒(00~59)
对应需求的使用示例
你给出的两个TO_CHAR写法,在Spark SQL中可以直接替换为以下写法:
-- 对应原SQL:TO_CHAR(SYSTIMESTAMP, "yyyy-MM-dd HH24:mm:ss") SELECT date_format(current_timestamp(), "yyyy-MM-dd HH:mm:ss"); -- 对应原SQL:TO_CHAR(SYSTIMESTAMP, "yyyyMMddHHmmss") SELECT date_format(current_timestamp(), "yyyyMMddHHmmss"); -- Spark 3.0+ 可直接使用TO_CHAR SELECT TO_CHAR(current_timestamp(), "yyyy-MM-dd HH:mm:ss"); SELECT TO_CHAR(current_timestamp(), "yyyyMMddHHmmss");
内容的提问来源于stack exchange,提问作者Sonu
相关产品推荐
相关产品推荐

