- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 Impala 中使用下表:
customer_id | day_id | return_day_id
ABC 20170830 20170923
BCD 20170830 20170901
不幸的是,day_id 和 return_day_id 字段都是 INT 而不是日期。
如何将它们的数据类型更改为日期,以便我可以在 day_id 之后的 4 天内仅使用 return_day_id 计算不同的 customer_id。我是否需要将其转换为日期,然后转换为时间戳,以便我可以使用 adddate 函数?
最佳答案
其中一条评论正确指出,您需要使用 unix_timestamp
和 from_unixtime
,但是您不需要使用 cast。 stackoverflow 上的许多其他问题遇到了类似的问题,每个问题都尝试使用强制转换,但在许多情况下最终返回 NULL 值或不起作用。
下面应该以 YYYY-MM-dd 的格式为您提供所需的时间对象,您还可以选择向其中添加 hh-mm-ss。
SELECT TBL.day_id, from_unixtime(unix_timestamp(cast (TBL.day_id as string), "yyyyMMdd"))
FROM yourTable as TBL
LIMIT 10
要记住的一个小注意事项是,这会将字符串转换为日期,因此我们将其转换为字符串 cast (TBL.day_id as string), "yyyyMMdd"))
示例:
20160220 -> 2016-02-20 00:00:00
您可以在文档中找到更多信息 here .
希望对你有帮助,朱利安
关于date - Hadoop 黑斑羚 : Format datatype integer to date/timestamp to use addtime function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46574158/
我想在 1 小时内统计每个 ID 的记录。我尝试了一些 IMPALA 查询,但没有任何运气。 我有如下输入数据: 预期的输出是: 我试过了: select concat(month,'/'
我已经从 MySQL 导入了一个表到 Hive,该表有 1000 万行,现在在 Impala 中执行一些操作以检查功能和性能。现在,当我发出以下查询时,出现错误 argument of type 'N
我在 Impala 中使用下表: customer_id | day_id | return_day_id ABC 20170830 20170923 BCD
我是一名优秀的程序员,十分优秀!