hive本身有一个UDF,名字是datediff。我们来看一下这个日期差计算的官方描述:
hive> desc function extended datediff;
OK
datediff(date1, date2) - Returns the number of days between date1 and date2
date1 and date2 are strings in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. The time parts are ignored.If date1 is earlier than date2, the result is negative.
Example:
hive> select datediff('2009-30-07', '2009-31-07') from src limit 1;
如果我的日期是2013/10/15这样的,该这么办?这时候可以用hive的regexp_replace 这个UDF。示例如下:
select datediff(regexp_replace('2013/10/15', "/", "-"),regexp_replace('2013/9/15', "/", "-")) from words limit 1;
hive的udf还是很强大的,可以多show functions,学习了解各种hive function。