程序地带

Hive常用的时间相关函数


Hive常用的时间相关函数
查看Hive的内置函数

通过show functions可以查看Hive所有的内置函数 通过desc function extended 函数名可以查看函数的具体用法


hive (default)> show functions;
OK
tab_name
array_contains
ascii
asin
assert_true
atan
avg
base64
between
bin
.....
# 查看upper函数的具体用法
hive (default)> desc function extended upper;
OK
tab_name
upper(str) - Returns str with all characters changed to uppercase
Synonyms: ucase
Example:
> SELECT upper('Facebook') FROM src LIMIT 1;
'FACEBOOK'
Time taken: 0.03 seconds, Fetched: 5 row(s)

下面简单介绍一些常用的基础的内置函数,只做简要介绍,具体使用方法可以通过上述方式自己查找一下


常用的时间类函数

unix_timestamp(date[, pattern]):将一个日期转换为时间戳 注意:默认的时间格式是yyyy-MM-dd HH:mm:ss,如果日期不是这种格式无法识别,可以在加一个参数,传入自己想要的格式来解决

from_unixtime(unix_time, format):将一个时间戳转换为指定的格式 注意:如果format没有指定,就是日期+时分秒

to_date(expr):将一个标准的日期时间格式的数据截取日期出来


SELECT to_date(‘2009-07-30 04:17:52’) FROM src LIMIT 1; ‘2009-07-30’


year(date):返回一个日期的年 **注意:**日期的格式必须是 ‘yyyy-MM-dd HH:mm:ss’ 或 ‘yyyy-MM-dd’. Example:


SELECT year(‘2009-07-30’) FROM src LIMIT 1; 2009


同理,获取月、日等函数为:month day hour minute second

weekofyear(date):返回一个日期是这一年的第几周

dayofmonth(date):返回日期是这一个月的第几天

months_between(date1, date2):返回两个日期的月份之差


SELECT months_between(‘1997-02-28 10:30:00’, ‘1996-10-30’); 3.94959677 注意: 日期的格式必须是标准的日期格式,也可以加上时间


add_months(start_date, num_months):日期的月份加一个数


SELECT add_months(‘2009-08-31’, 1) FROM src LIMIT 1; ‘2009-09-30’ 如果想让月份减少可以将num_months设置为负


datediff(date1, date2) - 返回date1与date2的日期之差


SELECT datediff(‘2009-07-30’, ‘2009-07-31’); -1


如果日期格式中有时分秒的话,时分秒会忽略

date_add:

date_add(start_date, num_days):日期增加


select date_add(‘2020-12-16’, 1); 2020-12-17 Time taken: 0.047 seconds, Fetched: 1 row(s) select date_add(‘2020-12-16’, -1); 2020-12-15 Time taken: 0.447 seconds, Fetched: 1 row(s)


date_sub:和date_add同理,日期减去一个数

last_day(date):返回给定日期所属月份的最后一天的日期


SELECT last_day(‘2020-12-16’) FROM src LIMIT 1; 2020-12-31


结语

以上是最近学到的常用的时间函数,若有不足或有误的地方,请多多指正。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/QiSorry/article/details/111246134

随机推荐

选择排序和冒泡排序

选择排序选择排序的思想:将无序列的数列中最小的元素放在第一位,再继续将除了之前被放进去过的元素之外的其他元素中选出最小的放到第二位。文字语言来叙述算法,较为繁...

Crash-struggle 阅读(901)

PHP上传数据到SQLServer接口实例(亲测)

PHP上传数据到SQLServer,以下运用sqlsrv函数实现1.首先确认是否已经打开sqlsrv拓展(phpinfo)2.话不多说,直接上代码<?phpnamespaceappspbco...

别惹轩轩 阅读(434)

vc 2010 express 双击.c源文件没反应

在软件的资源管理器,点开源文件目录。右键.c文件,选择打开方式,以带编码功能的c++文件打开。...

滕青山_ 阅读(212)

python

python面向对象教程戳这里python基础语法教程戳这里...

安梓晨 阅读(203)

大疆热红外图片温度读取

适用于大疆禅思ZenmuseH20系列拍摄的红外图片,依赖于大疆发布的TSDK(DJIThermalSDK),可用于视频的动态测温。其实对TSD...

y9m88 阅读(685)

RabbitMQ

onnectionFactory、Connection、Channel1Queue1.1Messageacknowledgment1.2Messagedurability1.3Prefetchcoun...

hello可乐 阅读(422)