关于Hive中按时间范围查询不到数据的问题


       根据需求,使用Hive2从sqlserver中导入数据到HDFS上,由于sqlserver中存储的时间格式为:2018-06-04 00:00:00.000,如果按照这种格式导入到Hive,按时间范围查询就查不到,使用了to_date, date_format, cast(date as string)等都没用,后来转换了思路,既然Hive按时间字段不能正常查询,那就转为字符串来查总可以吧。如下是我从sqlserver导入到HDFS,再导入到Hive表的原始数据:


      我的需求是这样的,就是按照时间字段(c_dt)范围查询数据,并进行相关分析,按照"yyyy-MM-dd HH:mm:ss"格式来查询不到,那为什么不转成"yyyyMMdd"来查询呢,后来经过多番尝试,可以实现按时间范围查询,如下图:


    Hql语句为:select c_gcode, c_name, cast(substring(regexp_replace(c_dt,'-',''),2,9) as string), c_number_sale from xlsx_goods_info where cast(substring(regexp_replace(c_dt,'-',''),2,9) as string) >= '20180602' and cast(substring(regexp_replace(c_dt,'-',''),2,9) as string) <= '20180603' order by c_name;


     刚刚转大数据分析行业,希望能帮到跟我有相同经历的朋友,若有不对的地方,还请大神多多指教!


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值