hive中的时间函数

hive中的时间处理函数

HiveSql中的时间处理函数与标准的SQL有些差别,其中差别最大的是对标准时间的处理,hive中常见到标准时间(即1970年1月1日到当前时间的秒数),而Oracle中基本没有这类的用法,另外Hive中的时间格式通常为“YYYY-MM-DD”格式的,对于8位的日期函数,转化起来略微麻烦。常见到的时间函数如下

  • unix时间戳转日期函数:from_unixtime

    语法:from_unixtime(bigint unixtime[,string format])

    转化unix时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式

    举例:select from_unixtime(1323308943,'yyyyMMdd') from dual; ##返回值为20111208

  • 获取当前unix时间戳函数 unix_timestamp

    语法:unix_timestamp()

    获得当前的时间戳

    举例:select unix_timestamp() from dual; ##返回值为1323309615

  • 日期转unix时间戳函数:unix_timestamp

    语法:unix_timestamp(string date)

    转换格式为’yyyy-MM-dd HH:mm:ss’ 的日期到unix时间戳。如果转换失败,则返回0。

    举例:select unix_timestamp('2011-12-07 13:01:03') from dual; ##返回值为1323234063

  • 指定格式日期转unix时间戳函数:unix_timestamp

    语法:unix_timestamp(string date,string pattern)

    转换pattern格式的日期到unix时间戳。如果转化失败,则返回0

    举例:select unix_timestamp('20111207 13:01:03','yyyyMMdd HH:mm:ss') from dual; ##返回值为1323234063

  • 日期时间转日期函数:to_date

    语法:to_date(string timestamp)

    返回日期时间字段中的日期部分

    select to_date('2011-12-08 10:03:01') from dual; ##返回值为2011-12-08

  • 日期转年函数:year

    语法:year(string date)

    返回日期中的年

  • 日期转月函数:month

    语法:month(string date)

    返回日期中的月份

  • 日期转天函数:day

    语法:day(string date)

    返回日期中的天

  • 日期转小时函数 hour

    语法:hour(string date)

    返回日期中的小时

  • 日期转分钟函数 minute

    语法:minute(string date)

    返回日期中的分钟

    举例:select minute('2019-04-08 10:03:01') from dual; ##返回值为3

  • 日期转秒函数 second

    语法:second(string date )

    返回日期中的秒

  • 日期转周函数 weekofyear

    语法:weekofyear(string date)

    返回日期在当前的周数

  • 日期比较函数 datediff

    语法:datediff(string enddate,string startdate)

    返回结束日期减去开始日期的天数

    举例 :select datediff('2019-04-01','2019-04-02') from dual;## 返回值为1

  • 日期增加函数 date_add

    语法:date_add(string startdate,int days)

    返回开始日期startdate增加days天后的日期

    举例:select date_add('2019-04-08',10) from dual; ## 返回值为2019-04-18

  • 日期减少函数 date_sub

    语法:date_sub(string strartdate,int days)

    返回开始时间startdate减少days天后的日期

    举例:select date_sub('2019-04-18',10) from dual; ## 返回值:2019-04-08

你可能感兴趣的:(hive)