hive中提取年月(与mysql语法存在差异)

hive中提取年月(与mysql语法存在差异),第1张

背景:

存在表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日期函数

hive和mysql的区别有:

1、查询语言不同:hive是hql语言,mysql是sql语句;

2、数据存储位置不同:hive是把数据存储在hdfs上,而mysql数据是存储在自己的系统中;

3、数据格式:hive数据格式可以用户自定义,mysql有自己的系统定义格式;

4、数据更新:hive不支持数据更新,只可以读,不可以写,而sql支持数据更新;

5、索引:hive没有索引,因此查询数据的时候是通过mapreduce很暴力的把数据都查询一遍,也造成了hive查询数据速度很慢的原因,而mysql有索引。

1.查询语言不同:hql/sql

2.数据存储位置不同:hdfs/数据库系统

3.数据格式:可自定义/数据库系统定义格式

4.数据更新:Hive不支持数据更新/mysql支持数据更新update


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8323719.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存