【Hive SQL】常用日期函数汇总

时间戳和日期相互转换函数:

unix_timestamp :日期格式转换成时间戳

from_unixtime :时间戳转换成日期格式函数

current_timestamp: 获取当前的时间戳

to_date: 将日期由字符串类型转换成日期类型

转特定日期单位的函数:

year: 获取年份

month: 获取月份

day: 获取某天

hour: 获取小时

date_diff: 获取相差天数

获取特定日期函数:

date_sub: 获取某个日期前X天的日期

date_add: 获取某个日期后X天的日期

last_day: 获取某月最后一天

next_day: 获取下一周星期几的日期

current_date: 获取某月最后一天

实用案例:

时间格式YYYYMMDD转换成YYYY-MM-DD

时间戳和日期相互转换函数:

语法

unix_timestamp([expr [, fmt] ] )

返回当前时间或指定时间的 UNIX 时间戳。

  • expr:采用有效日期/时间格式的可选日期、时间戳或字符串表达式。
  • fmt:在 expr 为字符串时,指定格式的可选字符串表达式。

示例

> SELECT unix_timestamp('2016-04-08', 'yyyy-MM-dd');
 1460041200

语法

from_unixtime(unixTime [, fmt])

fmt 中返回 unixTime

示例

> SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss');
 1970-01-01 00:00:00
> SELECT from_unixtime(0);
 1970-01-01 00:00:00

语法

current_timestamp()

返回查询计算开始时的当前时间戳。

示例

> SELECT current_timestamp();
 2022-09-26 00:18:11.914

语法

to_date(expr [, fmt] )

返回使用可选格式设置将 expr 转换为日期后的值。

  • expr:表示日期的 STRING 表达式。
  • fmt:一个可选格式 STRING 表达式。

示例

> SELECT to_date('2009-07-30 04:17:52');
 2009-07-30
> SELECT to_date('2016-12-31', 'yyyy-MM-dd');
 2016-12-31

转特定日期单位的函数:

语法

year(expr)

返回 expr 的年份部分。

  • expr:一个日期或时间戳表达式。

示例

> SELECT year('2016-07-30');
 2016

语法

month(expr)

返回 expr 中时间戳的月份部分。

  • expr:一个 TIMESTAMP 表达式或有效时间戳格式的字符串。

示例

> SELECT month('2016-07-30');
 7

语法

day(expr)

返回日期或时间戳的月份日期。

  • expr:一个日期或时间戳表达式。

示例

> SELECT day('2009-07-30');
 30

语法

hour(expr)

返回时间戳的小时部分。

  • expr:时间戳表达式。

示例

> SELECT hour('2009-07-30 12:58:59');
 12

语法

date_diff(endDate, startDate)

返回从 startDateendDate 的天数。

  • endDate:日期表达式。
  • startDate:日期表达式。

示例

> SELECT date_diff('2009-07-31', '2009-07-30');
 1
> SELECT date_diff('2009-07-30', '2009-07-31');
 -1

获取特定日期函数:

语法

date_sub(startDate, numDays)

返回在 startDate 之前的日期 numDays

  • startDate:一个日期表达式。
  • numDays:一个整数表达式。

示例

> SELECT date_sub('2016-07-30', 1);
 2016-07-29

语法

date_add(startDate, numDays)

返回在 startDate 之后的日期 numDays

  • startDate:一个日期表达式。
  • numDays:一个整数表达式。

示例

> SELECT date_add('2016-07-30', 1);
 2016-07-31

语法

last_day(expr)

返回日期所属月份的最后一天。

  • expr:一个 DATE 表达式。

示例

> SELECT last_day('2009-01-12');
 2009-01-31

语法

next_day(expr, dayOfWeek)

返回晚于 expr 并已按 dayOfWeek 中命名的第一个日期。

  • expr:一个 DATE 表达式。
  • dayOfWeek:标识一周中某一天的 STRING 表达式。

示例

> SELECT next_day('2015-01-14', 'TU');
 2015-01-20

dayOfWeek 必须是以下之一(不区分大小写):

'SU', 'SUN', 'SUNDAY'
'MO', 'MON', 'MONDAY'
'TU', 'TUE', 'TUESDAY'
'WE', 'WED', 'WEDNESDAY'
'TH', 'THU', 'THURSDAY'
'FR', 'FRI', 'FRIDAY'
'SA', 'SAT', 'SATURDAY'

语法

current_date()

返回查询计算开始时的当前日期。

示例

> SELECT current_date();
 2020-04-25

实用案例:

Original: https://blog.csdn.net/u013631103/article/details/127081160
Author: 王久也你又在造BUG
Title: 【Hive SQL】常用日期函数汇总

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816895/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球