在Hive中,处理时间数据的函数非常有用,尤其是在处理包含时间戳或日期字段的大数据时。以下是一些Hive中相对频繁使用的时间处理函数,包括它们的名称、参数、功能以及SQL示例。
1. from_unixtime
 
- 参数:
bigint unixtime, [string format] - 功能:将Unix时间戳(秒)转换为指定格式的字符串。如果未指定格式,则默认为
yyyy-MM-dd HH:mm:ss。 - SQL示例:
SELECT from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss') AS formatted_time; 
2. unix_timestamp
 
- 参数:
[string date],[string pattern] - 功能:将字符串(日期)转换为Unix时间戳(秒)。如果未指定日期字符串,则返回当前时间的Unix时间戳。如果指定了模式(pattern),则按该模式解析日期字符串。
 - SQL示例:
SELECT unix_timestamp('2023-04-01 12:00:00', 'yyyy-MM-dd HH:mm:ss') AS timestamp_seconds; 
3. date_format
 
- 参数:
string date, string format - 功能:将日期/时间字符串按照指定的格式进行格式化。
 - SQL示例:
SELECT date_format('2023-04-01 12:00:00', 'yyyy-MM-dd') AS formatted_date; 
4. to_date
 
- 参数:
string timestamp - 功能:将时间戳字符串转换为日期(
yyyy-MM-dd)格式。 - SQL示例:
SELECT to_date('2023-04-01 12:00:00') AS date_only; 
5. current_date 和 current_timestamp
 
- 参数:无
 - 功能:
current_date返回当前日期(yyyy-MM-dd),而current_timestamp返回当前的日期和时间(包括时区信息,如果配置了的话)。 - SQL示例:
SELECT current_date AS today, current_timestamp AS now; 
6. date_add
 
- 参数:
string startdate, int days - 功能:在日期上加上指定的天数。
 - SQL示例:
SELECT date_add('2023-04-01', 10) AS new_date; 
7. date_sub
 
- 参数:
string startdate, int days - 功能:从日期中减去指定的天数。
 - SQL示例:
SELECT date_sub('2023-04-11', 10) AS previous_date; 
8. datediff
 
- 参数:
string enddate, string startdate - 功能:计算两个日期之间的天数差。
 - SQL示例:
SELECT datediff('2023-04-11', '2023-04-01') AS days_between; 
9. year、month、day、hour、minute、second
 
- 参数:
string date - 功能:分别提取日期时间字符串中的年、月、日、小时、分钟、秒部分。
 - SQL示例:
SELECT year('2023-04-01 12:00:00') AS year, month('2023-04-01 12:00:00') AS month; 
。










