hive将字符串etl_dt格式改成如:20200917改成日期2020-09-17
时间: 2024-09-18 07:12:56 浏览: 50
DBeaver链接hive驱动包下载: hive-jdbc-uber-2.6.5.0-292.jar
Hive中可以使用内置函数`from_unixtime()`或`date_format()`来将字符串转换成日期格式。假设你的字符串`etl_dt`是以"yyyyMMdd"的形式存储的,你可以通过以下SQL语句将其转换:
```sql
SELECT date_format(unix_timestamp(etl_dt, 'yyyyMMdd'), 'yyyy-MM-dd') AS new_date
FROM your_table;
```
这里,`unix_timestamp(etl_dt, 'yyyyMMdd')`会将字符串转换为Unix时间戳,然后`date_format()`函数再将这个时间戳转换为你想要的"YYYY-MM-DD"格式。
如果你的Hive版本支持`cast()`函数,另一种做法是直接转换:
```sql
SELECT cast(etl_dt as timestamp) as new_date
FROM your_table
DATE_FORMAT(new_date, 'yyyy-MM-dd');
```
在这个例子中,先将字符串转换为timestamp类型,然后再转换回日期格式。
阅读全文