目录
(2)将时间戳,格式化成日期(date -d @时间戳 +%Y-%m-%d:%H:%M%S)
1. 进入脚本当前路径
BASEDIR=`dirname $0`
cd ${BASEDIR}/../
BASEDIR=`pwd`
${BASEDIR}/bin/XXXX.sh > /dev/null 2>&1
命令`dirname $0`就是获取脚本当前路径
2. 日期函数
+%F ,等价于 %Y-%m-%d,2017-08-02
+%F\ %T,等价于%Y-%m-%d %H:%M:%S,2017-08-02 23:40:49
+%s,获取当前时间戳
(1)获取往前或往后的时间并格式化
一、n(年/月/天)前、n(年/月/天)后
date -d '-n 日期标志' +%F
date -d '+n 日期标志' +%F
·日期标志:year、month、day
-------------------------------------------
二、n(小时/分钟/秒)前、n(小时/分钟/秒)后
date -d '-n 日期标志' +%F\ %T
date -d '+n 日期标志' +%F\ %T
·日期标志:hour、min、sec
(2)将时间戳,格式化成日期(date -d @时间戳 +%Y-%m-%d:%H:%M%S)
seconds=`date -d '20190625' +%s`
seconds_tommo=$((seconds + 86400))
eday=`date -d @$seconds_tommo +%Y-%m-%d`
(3)hive中时间戳函数
时间戳86400为24小时
10位bigint时间戳精确到秒,13位bigint时间戳精确到毫秒
select unix_timestamp('2019-03-05','yyyy-MM-dd'); 获取指定格式日期的,bigint型时间戳
select from_unixtime(1237532400,'yyyy-MM-dd HH:mm:ss'); 将指定bigint型时间戳,转换为指定格式日期
(4)hive查询近7天数据(datediff函数)
Hive三个内置date函数:datediff、date_sub、date_add用法
//其中dt为yyyyMMdd格式
where datediff('2019-06-24', from_unixtime(unix_timestamp(dt,'yyyyMMdd'),'yyyy-MM-dd'))<7
----------------------------------------------------
查询结果的dt为:2019-06-18 ~ 2019-06-24共7天的数据
(5)UTF世界统一时间,北京是东八区,所以+8小时
例如2019-05-06的零点,为2019-05-06 T 00:00:00 +08:00