在hive中,日期格式是这样的(23-9月 -21) ,我想把它变成 (210923) 应该怎么写这个sql
时间: 2024-01-23 10:02:00 浏览: 22
你可以使用Hive内置的日期函数和字符串函数来实现这个转换。具体的SQL语句如下:
```
SELECT CONCAT(SUBSTR(date_col, -2), LPAD(MONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(SUBSTR(date_col, 1, LENGTH(date_col)-3), 'dd-M月-yy'), 'yyyy-MM-dd')), 2, '0'), LPAD(SUBSTR(date_col, 1, 2), 2, '0')) AS new_date_col
FROM your_table;
```
其中,`date_col`是你要转换的日期列名,`your_table`是你的表名。这个SQL语句首先使用`SUBSTR`函数截取原日期字符串中的年、月、日部分,然后使用`FROM_UNIXTIME`函数和`UNIX_TIMESTAMP`函数将其转换为日期类型,接着使用`MONTH`函数和`LPAD`函数将月份和日补齐0,最后使用`CONCAT`函数拼接成新的日期字符串。
相关问题
hive中格式yyyy-mm-dd hh:mm:ss是什么意思
在Hive中,格式“yyyy-mm-dd hh:mm:ss”表示一个日期和时间值,其中:
- yyyy表示4位数的年份(例如2021)
- mm表示2位数的月份(01表示一月,12表示十二月)
- dd表示2位数的日期(01表示1号,31表示31号)
- hh表示2位数的小时(00表示午夜12点,23表示晚上11点)
- mm表示2位数的分钟(00表示整点,59表示59分钟)
- ss表示2位数的秒钟(00表示整分,59表示59秒)
这个格式通常用于表示时间戳或日期时间类型的列。
hive中20120102转为2012-01-02
在Hive中,可以使用日期函数将字符串类型的日期转换为日期格式。可以使用from_unixtime()函数和unix_timestamp()函数将字符串转换为日期类型。假设你的日期字符串是20120102,你可以使用如下语句将其转换为日期格式'2012-01-02':
```
SELECT from_unixtime(unix_timestamp('20120102','yyyyMMdd'),'yyyy-MM-dd');
```
其中,unix_timestamp()函数将日期字符串'20120102'转换为Unix时间戳,from_unixtime()函数将Unix时间戳转换为日期格式'yyyy-MM-dd'。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)