在hive中,日期格式是这样的(23-9月 -21) ,我想把它变成 (210923) 应该怎么写这个sql
时间: 2024-01-23 16:02:00 浏览: 21
你可以使用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中如何实现 SEPARATOR '-----'
在 Hive 中,可以使用以下语法来实现 SEPARATOR '-----':
```sql
SELECT col1, col2, col3 FROM table_name
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '-----'
```
这样就可以实现在每个数组元素之间加上 "-----" 分隔符。