1. UNIX时间戳转日期函数:from_unixtime
语法: from_unixtime(bigint unixtime[, string format])
返回值: string
说明:转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式
hive> select from_unixtime(1323308943 ,' yyyyMMdd' ) fromtable_name;
20111208
2. 获取当前UNIX时间戳函数:unix_timestamp
语法: unix_timestamp()
返回值: bigint
说明:获得当前时区的UNIX时间戳
hive> select unix_timestamp() from table_name;
1323309615
3. 日期转UNIX时间戳函数:unix_timestamp
语法: unix_timestamp(string date)
返回值: bigint
说明:转换格式为"yyyy-MM-ddHH:mm:ss"的日期到UNIX时间戳。如果转化失败,则返回0。
hive> select unix_timestamp(' 2011-12-07 13:01:03' ) from table_name;
1323234063
4. 指定格式日期转UNIX时间戳函数:unix_timestamp
语法: unix_timestamp(string date, string pattern)
返回值: bigint
说明:转换pattern格式的日期到UNIX时间戳。如果转化失败,则返回0。
hive> select unix_timestamp(' 20111207 13:01:03' ,' yyyyMMddHH:mm:ss' ) from table_name;
1323234063
语法: to_date(string timestamp)
返回值: string
说明:返回日期时间字段中的日期部分。
hive> select to_date(' 2011-12-08 10:03:01' ) from table_name;
2011 - 12 - 08
语法: year(string date)
返回值: int
说明:返回日期中的年。
hive> select year(' 2011-12-08 10:03:01' ) from table_name;
2011
hive> select year(' 2012-12-08' ) from table_name;
2012
语法: month (string date)
返回值: int
说明:返回日期中的月份。
hive> select month(' 2011-12-08 10:03:01' ) from table_name;
12
hive> select month(' 2011-08-08' ) from table_name;
8
语法: day (string date)
返回值: int
说明:返回日期中的天。
hive> select day(' 2011-12-08 10:03:01' ) from table_name;
8
hive> select day(' 2011-12-24' ) from table_name;
24
语法: hour (string date)
返回值: int
说明:返回日期中的小时。
hive> select hour(' 2011-12-08 10:03:01' ) from table_name;
10
语法: minute (string date)
返回值: int
说明:返回日期中的分钟。
hive> select minute(' 2011-12-08 10:03:01' ) from table_name;
3
语法: second (string date)
返回值: int
说明:返回日期中的秒。
hive> select second(' 2011-12-08 10:03:01' ) from table_name;
1
语法: weekofyear (string date)
返回值: int
说明:返回日期在当前的周数。
hive> select weekofyear(' 2011-12-08 10:03:01' ) from table_name;
49
语法: datediff(string enddate, string startdate)
返回值: int
说明:返回结束日期减去开始日期的天数。
hive> select datediff(' 2012-12-08' ,' 2012-05-09' ) from table_name;
213
语法: date_add(string startdate, int days)
返回值: string
说明:返回开始日期startdate增加days天后的日期。
hive> select date_add(' 2012-12-08' ,10 ) from table_name;
2012 - 12 - 18
语法: date_sub (string startdate, int days)
返回值: string
说明:返回开始日期startdate减少days天后的日期。
hive> select date_sub(' 2012-12-08' ,10 ) from table_name;
2012 - 11 - 28