这种格式的字符串在hive 中 用sql怎么分割 ‘王晓娟2020-05-22台风’
时间: 2024-02-20 20:58:36 浏览: 13
在 Hive 中,您可以使用 SUBSTR、INSTR 和 CONCAT 函数来分割这种格式的字符串。具体实现可以参考以下 HiveQL 语句:
```
SELECT SUBSTR(str, 1, INSTR(str, '2') - 1) AS name,
SUBSTR(str, INSTR(str, '2'), 10) AS date,
SUBSTR(str, INSTR(str, '2') + 10) AS event
FROM (
SELECT CONCAT('王晓娟', '2020-05-22', '台风') AS str
) t
```
这里假设字符串中的数字 2 是日期的起始标志,日期长度为 10 个字符。以上 HiveQL 语句将字符串拆分成了三个部分,分别是姓名、日期和事件,您可以根据实际需求进行修改。
相关问题
hive sql 将20230608字符串格式转为2023-06-08日期格式
可以使用Hive SQL中的`from_unixtime()`和`unix_timestamp()`函数将字符串格式的日期转换为日期格式。
假设你的日期字符串为'20230608',可以使用以下查询转换为日期格式:
```
SELECT from_unixtime(unix_timestamp('20230608', 'yyyyMMdd'), 'yyyy-MM-dd');
```
其中,`unix_timestamp()`函数将字符串'20230608'转换为Unix时间戳,'yyyyMMdd'是日期字符串的格式,`from_unixtime()`函数将Unix时间戳转换为日期格式'yyyy-MM-dd'。
hive sql分割字符串函数
Hive SQL中有一个用于分割字符串的函数叫做split。它的基本用法是split(string str, string regex),返回一个字符串数组。其中,str是要分割的字符串,regex是用于分割的正则表达式。这个函数会根据正则表达式将字符串分割成多个子串,并返回一个数组。你可以使用数组的索引来获取分割后的子串。例如,split('apache hive', '\\s+')会将字符串'apache hive'按照一个或多个空白符进行分割,返回一个包含两个元素的数组。\[3\]
#### 引用[.reference_title]
- *1* *2* [Hive函数03_字符串分割切片截取函数](https://blog.csdn.net/ZZQHELLO2018/article/details/103400521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [Hive SQL 中内置函数的梳理--字符串函数--时间函数--数学函数--条件函数--加密函数](https://blog.csdn.net/mx13156/article/details/126336858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]