hive sql 有一个日期字段,格式比较混乱,有形如“2022年2月5日”的,也有形如“2022-02-05”的,也有形如“2022.02.05”的,如何把该字段日期统一转化为“2022/02/05”这样的形式?
时间: 2023-03-02 22:54:37 浏览: 140
flink-sql-connector-hive-3.1.2-2.12-1.15.4.jar
可以使用Hive SQL中的UDF函数来实现日期格式的转化。
假设日期字段名为date_str,可以使用以下语句:
```
SELECT
CASE
WHEN date_str LIKE '%年%' THEN regexp_replace(date_str, '年', '/')
WHEN date_str LIKE '%-%' THEN regexp_replace(date_str, '-', '/')
WHEN date_str LIKE '%.%' THEN regexp_replace(date_str, '\\.', '/')
END AS date_formatted
FROM table_name;
```
其中,使用了三个WHEN语句来判断日期格式,如果日期格式是"年"、"-"或".",则使用regexp_replace函数替换为"/"。
注意,使用"."进行替换时,"."是正则表达式中的特殊字符,需要使用转义符"\\."来匹配真实的"."。
这样可以将日期字段格式进行统一转化为"年/月/日"的形式。
阅读全文