sql - 在Hive的查询端解析日期整数

标签 sql hadoop hive

标题可能有点难以理解,因此我将首先对其进行解释。

假设我的数据中有一列称为date,这是integer格式的20121013

我想以年,月,日格式输出数据。

我想知道查询方是否有办法拆分数据。

像这样:

select date[0:3] as year, date[4:5] as month, date[6:7] as day from blah blah; 

如果无法做到这一点,我必须创建一个简单的解析器,以在配置单元外部进行处理,但我希望有办法。

谢谢!

最佳答案

如果它是一个整数,它将始终采用yyyyMMdd格式,则只需执行以下操作:

select date / 10000 as year, 
       (date % 10000) / 100 as month, 
       date % 1000000 as day 
       from blah blah; 

关于sql - 在Hive的查询端解析日期整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19282650/

相关文章:

java - 如何将hadoop文件导入intelliJ?

hadoop - DataNodes硬盘驱动器

hadoop - Sqoop 导入错误 : org. apache.hadoop.security.AccessControlException: Permission denied by sticky bit

shell - 如何创建一个 unix 脚本来通过将表名作为文件的输入来循环 Hive SELECT 查询?

hadoop - 无法在 Hive 2.3.0 中创建具有约束的 Hive 表

java - 在sparkSession上注册两个同名的udf

sql - 在 Dbeaver 中为文件名模式定义附加变量?

sql - 尝试对不同的值求和 SQL

SQL服务器: indexed view containing greatest row per group

sql - 无法通过脚本将用户添加到 db_datareader