在配置单元表中加载数据时,当我从配置单元表中获取行时,所有日期列都将为null。另外,我只想获取日期,而不是时间戳,所以任何可能的解决方案。
1aaf6o9v1#
我建议您在表定义中使用datetime作为字符串表示列,并将其解析和转换为date,例如。,
select cast(regexp_extract('1989-09-26T09:00:00.000+05:30', '(\\d{4}-\\d{2}-\\d{2})T.*', 1) as date);
为了方便起见,也可以使用配置单元宏,例如。,
create temporary macro parse_date(ts string) cast(regexp_extract(ts, '(\\d{4}-\\d{2}-\\d{2})T.*', 1) as date);
然后
select parse_date('1989-09-26T09:00:00.000+05:30');
jk9hmnmh2#
您可以使用hive中的tou date函数仅从时间戳中提取日期例子:
hive> select to_date('1989-09-26T09:00:00.000+05:30'); +-------------+--+ | _c0 | +-------------+--+ | 1989-09-26 | +-------------+--+
2条答案
按热度按时间1aaf6o9v1#
我建议您在表定义中使用datetime作为字符串表示列,并将其解析和转换为date,例如。,
为了方便起见,也可以使用配置单元宏,例如。,
然后
jk9hmnmh2#
您可以使用hive中的tou date函数仅从时间戳中提取日期
例子: