旅游搭建网站,软件开发步骤包括哪些过程,qq推广文案怎么写,做网站ftp一、Hive 日期函数
在日常的数据处理工作中#xff0c;日期和时间的处理是非常常见的操作。Hive 提供了丰富的日期函数#xff0c;能够帮助我们方便地进行日期和时间的计算。本文将详细介绍 Hive 中常用的日期函数#xff0c;并通过具体的示例展示其用法和结果。
1. 获取当…一、Hive 日期函数
在日常的数据处理工作中日期和时间的处理是非常常见的操作。Hive 提供了丰富的日期函数能够帮助我们方便地进行日期和时间的计算。本文将详细介绍 Hive 中常用的日期函数并通过具体的示例展示其用法和结果。
1. 获取当前时间
获取包含毫秒的当前时间
SELECT current_timestamp();示例结果
2024-10-01 12:34:56.789获取当前日期
SELECT current_date();示例结果
2024-10-012. Unix 时间戳处理
获取当前 Unix 时间戳
SELECT unix_timestamp();示例结果
1727801696解释Unix 时间戳是自1970年1月1日UTC以来的秒数
将 Unix 时间戳转换为日期时间
SELECT from_unixtime(1727801696);示例结果
2024-10-01 12:34:563. 日期计算
日期加减天数
在指定的日期上增加或减少天数。
SELECT date_add(current_date(), 2);示例结果
2024-10-03日期加减月份
在指定的日期上增加或减少月份。
SELECT add_months(current_date(), 1);示例结果
2024-11-014. 获取指定日期的特殊日期
获取指定日期所在月份的最后一天
SELECT last_day(current_date());示例结果
2024-10-31获取指定日期的下一个星期几
第二个参数决定了返回的星期几例如 MO 表示星期一。
SELECT next_day(current_date(), MO);示例结果
2024-10-075. 日期差计算
计算两个日期之间相差的天数
SELECT datediff(current_date(), to_date(2020-10-08));示例结果
1454计算两个日期之间相差的月数
SELECT months_between(current_timestamp(), to_date(2022-10-08));示例结果
24.976. 日期格式转换
将字符串类型的日期转换为时间戳
SELECT unix_timestamp(2008-08-08, yyyy-MM-dd);示例结果
12181440007. 提取日期中的年、月、日
获取日期中的年、月、日
SELECT year(current_date()), month(current_date()), day(current_date());示例结果
2024 10 1二、Hive 条件函数
1. IF 函数
if(判断条件, x, y)当判断条件成立时返回 x否则返回 y。
SELECT ename, sal, if(sal 2500, great than 2500, less equers 2500) FROM emp;示例结果
--------------------------------
| ename | sal | result |
--------------------------------
| John | 3000 | great than 2500 |
| Jane | 2000 | less equers 2500 |
--------------------------------2. CASE WHEN 函数
CASE WHEN 函数用来根据条件进行分支判断打标签并结合聚合函数进行统计然后以列的方式显示结果。
SELECT ename, sal,
CASE WHEN sal 1000 THEN A 级WHEN sal 2000 THEN B 级WHEN sal 3000 THEN C 级WHEN sal 4000 THEN D 级ELSE E 级
END as grade
FROM emp;示例结果
--------------------
| ename | sal | grade |
--------------------
| John | 3000 | C 级 |
| Jane | 2000 | B 级 |
--------------------三、Hive 空值处理函数
1. COALESCE 函数
coalesce(a, b, c, ...) 返回参数里第一个不为空的值。
SELECT ename, coalesce(comm, 0) as comm FROM emp;示例结果 Jane的comm为空值
-------------
| ename | comm |
-------------
| John | 500 |
| Jane | 0 |
-------------2. NVL 函数
NVL(x, y) 如果 x 不为 NULL就返回 x否则返回 y。
SELECT ename, nvl(comm, 0) as comm FROM emp;示例结果 Jane的comm为空值
-------------
| ename | comm |
-------------
| John | 500 |
| Jane | 0 |
-------------四、聚合函数
常用的聚合函数有 MAX、SUM、COUNT、MIN、AVG 以及 GROUP BY 和 HAVING 的用法和 Mysql、Oracle 是一样的。
SELECT COUNT(1), MAX(sal), MIN(sal), AVG(sal), SUM(sal) FROM emp;示例结果
-------------------------------------------------
| count(1)| max(sal) | min(sal) | avg(sal) | sum(sal) |
-------------------------------------------------
| 2 | 3000 | 2000 | 2500 | 5000 |
-------------------------------------------------五、类型转换函数
1. array 数组类型转换函数
将不同的元素拼接成一个数组。
SELECT array(1, 2, 3) as num_array, array(a, b, c) as char_array;示例结果
------------------------
| num_array | char_array |
------------------------
| [1,2,3] | [a,b,c]|
------------------------2. str_to_map map类型转换函数
将字符串参数转换成一个 map 类型。
SELECT str_to_map(name:zhangsan,age:20, ,, :) as info_map;示例结果
-------------------------------
| info_map |
-------------------------------
| {name:zhangsan,age:20}|
-------------------------------语法
str_to_map(text, x, y)text包含键值对信息的字符串。x键值对之间的分隔符。y键和值之间的分隔符。
3. CAST 强制类型转换函数
CAST(x AS 类型) 强制类型转换。
SELECT from_unixtime(CAST(1652271247 AS bigint)) as datetime;示例结果
---------------------
| datetime |
---------------------
| 2022-05-11 03:34:07 |
---------------------