hive将日期字段etl_dt格式改成如:20200917改成2020-09-17
时间: 2024-09-18 09:12:54 浏览: 40
Hadoop_Hive_Project:NYU CSCI-GA.3033-003的课程项目
在Hive中,如果你有一个日期字段`etl_dt`,其格式是"yyyyMMdd",你可以使用内置函数`from_unixtime()`或者`substr()`以及`concat()`函数来转换它。这里是一个示例查询:
```sql
SELECT
CONCAT(YEAR(from_unixtime(unix_timestamp(etl_dt, 'yyyyMMdd'))), '-',
LPAD(MONTH(from_unixtime(unix_timestamp(etl_dt, 'yyyyMMdd'))), 2, '0'), '-',
LPAD(DAY(from_unixtime(unix_timestamp(etl_dt, 'yyyyMMdd'))), 2, '0'))
FROM your_table;
```
这个查询首先将`etl_dt`转换为Unix时间戳(unix_timestamp()函数),然后使用`from_unixtime()`将其转换回日期格式,最后使用`CONCAT()`连接年、月、日,并使用`LPAD()`函数保证月份和日子始终有两位数。
阅读全文