Hive 使用datediff函数求两个指定日期的差
datediff(endDate, startDate)
datediff(endDate, startDate) - Returns the number of days from startDate to endDate . Examples: > SELECT datediff(‘2009-07-31’, ‘2009-07-30’); 1 > SELECT datediff(‘2009-07-30’, ‘2009-07-31’); -1
上面一段是官方(SparkSql)给出的解释:返回endDate和startDate相差的天数
SparkSql官方连接:http://spark.apache.org/docs/latest/api/sql/index.html
有时候需要求两个指定日期相差的月数,这个时候该怎么办呢?答案是datediff(datepart,startdate,enddate)函数,但是该函数不支持hive
datediff(datepart,startdate,enddate)不支持hive
datepart | 缩写 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小时 | hh |
分钟 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
纳秒 | ns |
例如:SELECT DATEDIFF(day,‘2018-10-30’,‘2008-10-31’) AS DiffDate; 1
案例连接:http://www.w3school.com.cn/sql/func_datediff.asp