当前位置:   article > 正文

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

hive date_diff

目录

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

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 为字符串时,指定格式的可选字符串表达式。

示例

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

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

语法

from_unixtime(unixTime [, fmt])

在 fmt 中返回 unixTime

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

示例

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

current_timestamp: 获取当前的时间戳

语法

current_timestamp()

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

示例

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

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

语法

to_date(expr [, fmt] )

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

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

示例

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







转特定日期单位的函数:

year: 获取年份

语法

year(expr)

返回 expr 的年份部分。

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

示例

  1. > SELECT year('2016-07-30');
  2. 2016

 month: 获取月份

语法

month(expr)

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

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

示例

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

 day: 获取某天

语法

day(expr)

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

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

示例

  1. > SELECT day('2009-07-30');
  2. 30

 hour: 获取小时

语法

hour(expr)

返回时间戳的小时部分。

  • expr:时间戳表达式。

示例

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

 date_diff: 获取相差天数

语法

date_diff(endDate, startDate)

返回从 startDate 到 endDate 的天数。

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

示例

  1. > SELECT date_diff('2009-07-31', '2009-07-30');
  2. 1
  3. > SELECT date_diff('2009-07-30', '2009-07-31');
  4. -1







获取特定日期函数:

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

 语法

date_sub(startDate, numDays)

返回在 startDate 之前的日期 numDays

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

示例

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

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

 语法

date_add(startDate, numDays)

返回在 startDate 之后的日期 numDays

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

示例

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

 last_day: 获取某月最后一天

 语法

last_day(expr)

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

  • expr:一个 DATE 表达式。

示例

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

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

 语法

next_day(expr, dayOfWeek)

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

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

示例

  1. > SELECT next_day('2015-01-14', 'TU');
  2. 2015-01-20
  3. dayOfWeek 必须是以下之一(不区分大小写):
  4. 'SU', 'SUN', 'SUNDAY'
  5. 'MO', 'MON', 'MONDAY'
  6. 'TU', 'TUE', 'TUESDAY'
  7. 'WE', 'WED', 'WEDNESDAY'
  8. 'TH', 'THU', 'THURSDAY'
  9. 'FR', 'FRI', 'FRIDAY'
  10. 'SA', 'SAT', 'SATURDAY'

  current_date: 获取某月最后一天

 语法

current_date()

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

示例

  1. > SELECT current_date();
  2. 2020-04-25







实用案例:

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/406797
推荐阅读
相关标签
  

闽ICP备14008679号