Hive 基本教程

Hive SQL

Hive 笔记

Hive 日期差值操作函数 datediff 详解

Hive SQL 内置函数全解 Hive SQL 内置函数全解


Hive datediff 日期操作函数是对两个日期进行相减差值,计算两个时间的差值,并转换成指定的单位,如:天。

语法说明

语法

DATEDIFF(datetime1, datetime2, datepart)

说明

datediff 是两个日期相减的函数,返回两个时间参数的相差天数。

  • datetime1datetime2:datetime 类型,被减数和减数,若输入为 string 类型会隐式转换为 datetime 类型后参与运算,其它类型抛异常。
  • datepart:string 类型常量,修改单位,yyyy、mm、dd、hh、mi、ss 中的一个,指定时间差值的单位,也支持扩展的日期格式,年-“year”,月-“month” 或 “mon”,日-“day”,小时-“hour”。若 datepart 不符合指定的几种 pattern 或者其它类型则会发生异常。
  • 返回值:返回时间差值,int 类型。任一输入参数是 NULL,返回 NULL。

计算时,会按照 datepart 切掉低单位部分,然后再计算结果。

示例如下:

datediff('2021-10-28', '2021-10-26') = 2

若 start = '2020-12-31 23:59:59',end = '2021-01-01 00:00:00':

datediff(end, start, 'dd') = 1 
datediff(end, start, 'mm') = 1 
datediff(end, start, 'yyyy') = 1 
datediff(end, start, 'hh') = 1 
datediff(end, start, 'mi') = 1 
datediff(end, start, 'ss') = 1 

常用例子

计算日期对应的星期数

利用 pmod 和 datediff 函数进行操作,示例如下:

pmod(datediff(dp, '2012-01-01'), 7)

返回值为 “0-6”(“0-6” 分别表示“星期日-星期六”)。