Hive 使用datediff函数求两个指定日期的差

Hive 使用datediff函数求两个指定日期的差

  • datediff(endDate, startDate)
  • datediff(datepart,startdate,enddate)不支持hive

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

你可能感兴趣的:(Sql,hive,sql,server,日期差)