You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark SQL字符串替换优化及日期毫秒部分去除方法咨询

更简洁的实现方案

针对你的需求,有两种更简洁的实现方式,优先推荐第一种(如果字段是日期时间类型):

方案1:使用date_format函数(最优解)

如果rec_insertdttm是日期时间类型(timestamp/datetime),直接用Spark SQL的date_format函数指定目标格式即可,不需要任何字符串替换操作,效率更高:

select 
    date_format(MAX(rec_insertdttm), 'yyyyMMddHHmmss') as my_dttm 
from mydb.mytable

这个函数会直接按照yyyyMMddHHmmss格式输出,自动忽略毫秒部分,同时也不会包含-、:和空格。

方案2:单步正则替换(适用于字段是字符串类型)

如果rec_insertdttm是字符串类型,用单个regexp_replace就能完成所有替换,通过正则表达式一次性匹配所有需要移除的内容(-、:、空格,以及小数点后的毫秒部分):

select 
    regexp_replace(MAX(rec_insertdttm), '[-: ]|\\..*', '') as my_dttm 
from mydb.mytable

正则说明:

  • [-: ]:匹配-、:、空格这三个字符
  • \\..*:匹配小数点以及后面的所有内容(即毫秒部分)
  • |:逻辑或,只要匹配其中任意一种就替换为空字符串

内容的提问来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:35:58