【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 :日期格式转换成时间戳

语法

unix_timestamp([expr [, fmt] ] )

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

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

示例

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

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

语法

from_unixtime(unixTime [, fmt])

在 fmt 中返回 unixTime

  • unixTime:BIGINT 表达式,表示自 1970-01-01 00:00:00 以来已经过去的秒数。
  • fmt:可选的具有有效格式的 STRING 表达式。

示例

> 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: 获取当前的时间戳

语法

current_timestamp()

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

示例

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

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

语法

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: 获取年份

语法

year(expr)

返回 expr 的年份部分。

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

示例

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

 month: 获取月份

语法

month(expr)

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

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

示例

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

 day: 获取某天

语法

day(expr)

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

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

示例

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

 hour: 获取小时

语法

hour(expr)

返回时间戳的小时部分。

  • expr:时间戳表达式。

示例

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

 date_diff: 获取相差天数

语法

date_diff(endDate, startDate)

返回从 startDate 到 endDate 的天数。

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

示例

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







获取特定日期函数:

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

 语法

date_sub(startDate, numDays)

返回在 startDate 之前的日期 numDays

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

示例

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

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

 语法

date_add(startDate, numDays)

返回在 startDate 之后的日期 numDays

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

示例

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

 last_day: 获取某月最后一天

 语法

last_day(expr)

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

  • expr:一个 DATE 表达式。

示例

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

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

 语法

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: 获取某月最后一天

 语法

current_date()

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

示例

> SELECT current_date();
 2020-04-25







实用案例:

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

【HQL实用】时间格式YYYYMMDD转换成YYYY-MM-DDhttps://blog.csdn.net/u013631103/article/details/126983750?spm=1001.2014.3001.5501

你可能感兴趣的:(unix,hive,大数据,sql,数据库)