我是 Spark 和 Databricks Sql 的新手。我有下面提到的查询。我确信应该有一种聪明的方法来表示相同的表达式,而不是使用regexp_replace()
下面给出的 3 个函数。本质上,我需要摆脱-
, :
, ' '
。另外,我们也可以去掉毫秒部分吗?
select
regexp_replace(regexp_replace(regexp_replace(MAX(rec_insertdttm), '-', ''), ':', ''), ' ', '') as my_dttm
from mydb.mytable
该查询的输出类似于 :-'20230817162231.730846'
我想要:20230817162231
谢谢你的帮助。
如果您的列实际上是一种
TIMESTAMP
类型,您可以使用date_format
内置的 SQL 函数来有效地格式化它:如果您的类型是 a
STRING
,您可以CAST(rec_insertdttm AS TIMESTAMP)
将其传递给date_format()
上面相同的解决方案。或者您可以使用正则表达式字符范围:来一次替换多个字符
regexp_replace(rec_insertdttm, '[\- :.]', '')
。但该date_format()
解决方案的可读性和简单性要好得多。