db2日期转数字 db2日期转换函数_db2日期转数字

hive函数

1.关系函数
  • 等值比较 =语法:A=B 
    如果表达式A和表达式B相等,则为TRUE;否则为FALSE
  • 不等值比较 <>语法:A <> B如果表达式Anull,或者表达式Bnull,返回null;如果表达式A和表达式B不相等,则为true;否则为false
  • 小于比较 <语法:A < B 
    如果表达式Anull,或者表达式Bnull,返回null;如果A小于表达式B,则为true;否则为false
  • 小于等于(<=)、大于(>)、大于等于(>=)同上
  • 空值判断 is null 
    语法:A is null 
    如果表达式A的值为null,则为true;否则为false
  • 非空判断 is not null 
    语法:A is not null 
    如果表达式A的值为null,则为false;否则为true
  • like比较 like 
    语法:A [not] like B 
    如果字符串A 或者字符串B 为null,则返回null;如果字符串A符合表达式B的正则语法,则为true;否则为falseB中字符"_"表示任意单个字符,而字符“%”表示任意数量的字符注意:对特殊字符进行转义时,注意要使用两个反斜杠\ . 
  • Java的like/regexp操作:rlike/regexp
    语法:A rlike/regexp B 
    如果字符串A或者字符串Bnull,则返回null;如果字符串A符合Java正则表达式B的正则语法,则为TRUE;否则为false例:select * from dwd.tb_dwd_test where client_name rlike/regexp '^W *'注意:通配符‘%’在rlike/regexp函数中,只能使用一个‘%’字符,''也只能匹配一个''字符,即'%'和'_'不是通配符,此时通配符为''*
2.日期函数
  • unix时间戳转日期函数:from_unixtime语法:from_unixtime(bigint unixtime[,string format])转化unix时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:select from_unixtime(1323308943,'yyyyMMdd') from dual;
  • 获取当前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('2011-12-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 
条件函数
  • if函数 
    语法 : if(boolean testCondition, T valueTrue, T valueFalseOrNull)说明:当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull
    举例:select if(app_name = 'group',object_id,null) as deal_id from dw.topic_order where partition_pay_date = '2016-04-22' 等效于select case when app_name = 'group' then object_id else null end as deal_id from dw.topic_order where partition_pay_date = '2016-04-22'
  • 非空查找函数 coalesce 
    语法:coalesce(t v1,t v2 ,...) 
    说明:返回参数中的第一个非空值;如果所有值都为null,那么返回null
    举例:select coalesce(uuid,'') as uuid from dw.topic_order where partition_pay_date = '2016-04-22' 
    等效于Oracle中的nvl函数有两个参数时候,nvl函数是有这个函数延伸而来
  • 条件判断函数 case 
    语法:CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END 
    说明:如果 a 等于 b ,那么返回 c ;如果 a 等于 d ,那么返回 e ;否则返回 f 注意:相对而言,case when是最全的条件函数,可以用于判断多种条件;次之是if函数,属于二分判断;最后是coalesce函数,该函数只能对空值和非空进行判断 注意:case when函数是有优先顺序的,如果如果第一个条件成立,则返回第一个的值,此时若满足第二个条件,则数值不发生改变