我想在 Impala 查询中获取以下日期:
a. Sunday to Saturday Week (SSW):
1. First and Last day of Current week (SSW)
2. First and Last day of Previous week(SSW)
b. Monday to Sunday Week (MSW):
1. First and Last day of Current week (MSW)
2. First and Last day of Previous week(MSW)
c. Month:
1. First and Last Day of Current Month
2. First and Last Day of Previous Month
d. Quarter:
1. First and Last Day of Current Quarter
2. First and Last Day of Previous Quarter
e. Year:
1. First and Last Day of Current Year
2. First and Last Day of Previous Year
这是我到目前为止所拥有的:
SELECT
--Month
date_add(last_day(add_months(current_timestamp(),-1)),1) as Frist_Day_of_Current_Month,
last_day(now()) as Last_Day_of_Current_Month,
date_add(last_day(add_months(current_timestamp(),-2)),1) as Frist_Day_of_Previous_Month,
last_day(add_months(current_timestamp(),-1)) as Last_Day_of_Previous_Month,
--Year
trunc(now(), 'Y') as Frist_Day_of_Current_Year,
date_sub(trunc(now(), 'YEAR'), 1) AS Last_Day_of_Previous_Year
最佳答案
以下是日期:
选择 --单日
TRUNC(NOW(),'DD') 今天,
ADDDATE(TRUNC(NOW(),'DD'), -1) 为昨天,
ADDDATE(TRUNC(NOW(),'DD'), -2) AS TWO_DAYS_AGO,
ADDDATE(TRUNC(NOW(),'DD'), -3) AS THREE_DAYS_AGO,
ADDDATE(TRUNC(NOW(),'DD'), -4) AS FOUR_DAYS_AGO,
ADDDATE(TRUNC(NOW(),'DD'), -5) AS FIVE_DAYS_AGO,
ADDDATE(TRUNC(NOW(),'DD'), -6) AS SIX_DAYS_AGO,
ADDDATE(TRUNC(NOW(),'DD'), -7) AS WEEK_AGO,
--一周
--SUNDAY TO SATURDAY (NEED TO SCHEDULE THE REPORT TO RUN ON ONLY ON MONDAYS)
TRUNC(NOW(), 'D') - 间隔 1 天作为 FIRST_DAY_OF_CURRENT_WEEK_SS,
TRUNC(NOW(), 'D') + 间隔 5 天作为 LAST_DAY_OF_CURRENT_WEEK_SS,
TRUNC(NOW(), 'D') - 间隔 8 天作为 FIRST_DAY_OF_PREVIOUS_WEEK_SS,
TRUNC(NOW(), 'D') - 间隔 2 天作为 LAST_DAY_OF_PREVIOUS_WEEK_SS,
--MONDAY TO SUNDAY (NEED TO SCHEDULE THE REPORT TO RUN ONLY ON MONDAYS)
TRUNC(NOW(),'DY') AS FRIST_DAY_OF_CURRENT_WEEK_MS,
TRUNC(NOW(),'DY') + 间隔 6 天作为 LAST_DAY_OF_CURRENT_WEEK_MS,
TRUNC(NOW(),'DY') - 间隔 7 天作为 FIRST_DAY_OF_PREVIOUS_WEEK_MS,
TRUNC(NOW(),'DY') - 间隔 1 天为 LAST_DAY_OF_PREVIOUS_WEEK_MS,
--月
DATE_ADD(LAST_DAY(ADD_MONTHS(CURRENT_TIMESTAMP(),-1)),1) AS FRIST_DAY_OF_CURRENT_MONTH,
LAST_DAY(NOW()) AS LAST_DAY_OF_CURRENT_MONTH,
DATE_ADD(LAST_DAY(ADD_MONTHS(CURRENT_TIMESTAMP(),-2)),1) AS FRIST_DAY_OF_PREVIOUS_MONTH,
LAST_DAY(ADD_MONTHS(CURRENT_TIMESTAMP(),-1)) AS LAST_DAY_OF_PREVIOUS_MONTH,
--季度
TRUNC(NOW(), 'Q') AS FIRST_DAY_OF_CURRENT_QUARTER,
TRUNC(NOW(), 'Q')+ 间隔 3 个月 - 间隔 1 天作为 LAST_DAY_OF_CURRENT_QUARTER,
TRUNC(NOW(), 'Q') - 间隔 3 个月作为 FIRST_DAY_OF_PREVIOUS_QUARTER,
TRUNC(NOW(), 'Q') - 间隔 1 天作为 LAST_DAY_OF_PREVIOUS_QUARTER,
--年份
TRUNC(NOW(), 'Y') AS FRIST_DAY_OF_CURRENT_YEAR,
TRUNC(NOW(), 'YEAR') + 间隔 1 年 - 间隔 1 天作为 LAST_DAY_OF_CURRENT_YEAR,
TRUNC(NOW(), 'YEAR') - 间隔 1 年作为 FRIST_DAY_OF_PREVIOUS_YEAR,
TRUNC(NOW(), 'Y') - 间隔 1 天作为 LAST_DAY_OF_PREVIOUS_YEAR
谢谢
问候, 艾哈迈德
关于hadoop - Impala 周、月、季度和年日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084035/