hiveSql时间函数

hiveSql 时间跟标准的sql有些差别,主要是时间戳的转换
日常用的时间函数有以下几种:

  • 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

  • 日期比较函数 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)