计算两个时间的差
假设,计算 2016-10-01 11:00:00 与 20170523 相差几天。
- python
import time
t1 = time.mktime(time.strptime('2016-10-01 11:00:00','%Y-%m-%d %H:%M:%S'))
t2 = time.mktime(time.strptime('20170523','%Y%m%d'))
cycle_day = round((t2-t1)/(3600*24),2)
- hive sql
select (unix_timestamp('20170523','yyyyMMdd')-unix_timestamp('2016-10-01 11:00:00'))/(3600*24) from table
select datediff(concat_ws('-',substr('20170523',1,4),substr('20170523',5,2),substr('20170523',7,2)),'2016-10-01 11:00:00') from table
shell date命令获取时间
runDay="20170525"
#去年同一天20160525
last_year=$(date +"%Y%m%d" -d "${runDay} -1 year")
#上个月同一天20170425
last_month=$(date +"%Y%m%d" -d "${runDay} -1 month")
#往前推90天
someDay=$(date +"%Y%m%d" -d "${runDay} -90 days")
#昨天
yesterday=$(date +"%Y%m%d" -d "-1 days")