
-- 程序默认日期格式 -- 1、 '$[yyyy-MM-dd]' ===> '2021-01-01' 2、 '$[yyyyMMdd]' ===> '20210101'1.2、hive获取当前时间戳
unix_timestamp语法: unix_timestamp() 返回值: bigint - hive (default)> select unix_timestamp(); - 16387714591.3、hive获取当前日期
from_unixtime语法:from_unixtime(bigint unixtime[, stringformat]) 返回值: string - hive (default)> select from_unixtime(unix_timestamp(),'yyyyMMdd'); - 20211206 - hive (default)> select from_unixtime(unix_timestamp(),'yyyy-MM-dd'); - 2021-12-062、日周月年日期处理 2.1、获取日 2.2.1、当前几号
day (string date)
返回值: int
说明: 返回日期中的天。
hive> select day('2011-12-08 10:03:01');
8
hive> select day('2011-12-24');
24
2.2、获取周
2.2.1、获取第几周
weekofyear语法: weekofyear (string date)
返回值: int
说明: 返回日期在当前的周数。
举例:
hive> select weekofyear('2011-12-08 10:03:01') from dual;
49
2.2.2、获取哪一年的第几周
返回值: int
说明: 返回日期在当前年的周数。
hive > select year(date_sub(next_day(date_sub('2021-11-11',1),'MO'),4))*100+weekofyear(date_sub('2021-11-11',1));
202145
2.2.3、当前日期下 周一日期 (枚举取日期)
返回值: string
说明: 当前日期下 周一日期。
hive > select regexp_replace(date_add(next_day('2021-11-11', 'mo'), -7), '-', '');
20211108
2.2.4、当前日期下 周日日期
返回值: string
说明: 当前日期下 周日日期。
select regexp_replace(date_add(next_day('2021-11-11', 'mo'), -1), '-', '');
2.3、获取月
2.3.1、当前月份
默认函数: '$[yyyyMM]'
month语法: month (string date)
返回值: int
说明: 返回日期中的月份。
举例:
hive> select month('2011-12-08 10:03:01') from dual;
12
hive> select month('2011-08-08') fromdual;
8
2.3.1、上月日期 (第一天)(枚举可取值)
返回值: string
说明: 返回当前日期 下 的上月 一号。
hive > select trunc(add_months('2021-02-02',-1),'MM')
2021-01-01
返回值: string
说明: 返回当前日期 下 的上月 一号。
hive > regexp_replace(trunc(add_months('2021-02-02',-1),'MM'),'-','')
20210101
2.3.1、上月日期(最后一天)(枚举可取值)
返回值: string
说明: 返回当前日期 下 的上月 最后一天。
hive > select last_day(add_months('2021-02-02',-1))
2021-01-31
返回值: string
说明: 返回当前日期 下 的上月 最后一天。
hive > select regexp_replace(last_day(add_months('$[yyyy-MM-dd]',-1)),'-','')
20210131
2.4、获取年
默认函数: '$[yyyy]'
year(string date)
返回值: int
说明: 返回日期中的年。
举例:
hive> select year('2011-12-08 10:03:01') from dual;
2011
hive> select year('2012-12-08') fromdual;
2012
3、日期其他函数
3.1、日期比较函数:
datediff语法: datediff(string enddate,string startdate)
返回值: int
说明: 返回结束日期减去开始日期的天数。
举例:
hive> select datediff('2012-12-08','2012-05-09')from dual;
213
3.2、日期增加函数:
date_add语法: date_add(string startdate, intdays)
返回值: string
说明: 返回开始日期startdate增加days天后的日期。
举例:
hive> select date_add('2012-12-08',10)from dual;
2012-12-18
3.3、日期减少函数:
date_sub语法: date_sub (string startdate,int days)
返回值: string
说明: 返回开始日期startdate减少days天后的日期。
举例:
hive> select date_sub('2012-12-08',10)from dual;
2012-11-28
3.4、日期格式化
to_date(string timestamp)
返回值: string
- hive (default)> select year('2011-12-08 10:03:01');
- 2011-12-08
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)