背景:
存在表ods_sales_orders
实现:
或者
二者结果一致
存在疑问:
目的是提取字段create_date的年月
原数据:
*** 作:
因为原字段create_date是字符串类型,所以用TO_DATE()将其转化为日期类型,再利用dateformat()
结果:
为什么不是显示成'2019-02'这种形式,哪里有出错吗?但date_format(create_date,'YYYY-mm')显示的月份部分全部为00
回答:
hive和mysql的语法并不完全一致,hive里dateformat的格式是只有'yyyy-MM-dd HH',对应与mysql 的'%Y-%m-%d %H'
修改如下:
总结:
附:
hive日期函数
1、查询语言不同:
hive是hql语言,mysql是sql语句;
2、数据存储位置不同:
hive是把数据存储在hdfs上,而mysql数据是存储在自己的系统中;
3、数据格式不同:
hive数据格式可以用户自定义,mysql有自己的系统定义格式;
4、数据更新不同:
hive不支持数据更新,只可以读,不可以写,而sql支持数据更新。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)