hive中常見的時間函式
阿新 • • 發佈:2021-09-16
sql中的常見的時間函式
目錄
最近產品媽媽的一個需求是,統計近7天,近一個月,近6個月的使用者行為次數?看上去是一個非常簡單的需求,一開始查函式查錯了方向
select current_date() # 當前時間 select current_date()-1 # 20180529 **慎用** 因為之前之後的時間有專門的時間 select DATE_FORMAT(current_date()-1, '%Y-%m-%d') # 2018-05-29。 按照既定格式輸出資料 select DATE_FORMAT(current_date()-31, '%Y-%m-%d') # 空 select DATE_FORMAT(date_sub(current_date(), interval 1 day), '%Y-%m-%d') # 2018-05-29 過去一天 select DATE_FORMAT(date_sub(current_date(), interval 31 day), '%Y-%m-%d') # 2018-04-29 過去一個月 select DATE_SUB(current_date, INTERVAL 35 DAY) # 2018-04-25 過去n天
DATE_FORMAT這個主要是更改時間的輸出格式
使用python中的datatime可以自定義常見的一些時間函式
def date_sub(date, day_num): date = time.strptime(date, '%Y%m%d') date = datetime.datetime(date[0], date[1], date[2]) return (date - datetime.timedelta(days=day_num)).strftime('%Y%m%d'). # 這個是py中的 def date_add(date, day_num): date = time.strptime(date, '%Y%m%d') date = datetime.datetime(date[0], date[1], date[2]) return (date + datetime.timedelta(days=day_num)).strftime('%Y%m%d') def dt_format_transform(dt): return datetime.datetime.strptime(dt, '%Y%m%d').strftime('%Y-%m-%d') def get_day(cur_date=date.today(), delta=0): """獲取當前日期 input: cur_date: date型別, 預設為當天 delta: 偏移量, 當天為0, 昨天為-1, 明天為1 ouput: day_id: string """ return (cur_date+timedelta(days=delta)).strftime('%Y%m%d')