主要思路就是通過找到該天所在月的最後一天屬於週幾,然後往前推到本月的最後乙個星期天;其中找到當月最後一天時通過下月第一天往前推一天,需考慮該月是否為12月等等情況,具體hive sql如下,以當前日期為例:
--先找到下個月的第一天,根據年月日確定當月最後一天的日期
drop
table
ifexists month_last_day_table;
create
table
ifnot
exists month_last_day_table as
select
date_sub(
concat(
concat(
(case
when
month
(current_date()
)=12then
year
(current_date()
)+1else
year
(current_date()
)end),
--年'-',(
case
when
month
(current_date()
)=12then
'01'
when
month
(current_date()
)=11then
'12'
else concat(
'0',
month
(current_date()
)+1)
end)),
--月'-'
,'01'),
--日1
)as month_last_day;
--獲取當月最後乙個星期天,判斷當月最後一天屬於週幾,隨後往前推到第乙個星期天
drop
table
ifexists month_last_sunday;
create
table
ifnot
exists month_last_sunday as
select
case
when time_judge =
0then month_last_day
when time_judge =
1then date_sub(month_last_day,1)
when time_judge =
2then date_sub(month_last_day,2)
when time_judge =
3then date_sub(month_last_day,3)
when time_judge =
4then date_sub(month_last_day,4)
when time_judge =
5then date_sub(month_last_day,5)
when time_judge =
6then date_sub(month_last_day,6)
endas last_sunday
from
(select
pmod(datediff(month_last_day, to_date(
'1920-01-01'))
-3,7
)as time_judge,month_last_day --判斷當月最後一天屬於週幾
from month_last_day_table ) t;
C 中獲取某天所在月的第一天與最後一天
今天同事在c 開發時,按月的時間段進行查詢,在乙個月的第一天與最後一天的判斷有失誤 取得某月或某天所在月的第一天 public static datetime firstdayofmonth datetime datetime 取得某月或某天所在月的最後一天 public static dateti...
Python實現獲取某天是某個月中的第幾周
找了半天竟然沒找到,如何在python的datetime處理上,獲取某年某月某日,是屬於這個月的第幾周。無奈之下求助同學,同學給寫了乙個模組。如果你知道python有這個原生的庫,請不吝賜教 我稍作整理記錄在下。複製 如下 usr bin env python coding utf 8 author...
WinCE下如何獲取程序所在的目錄
眾所周知,wince下沒有當前目錄的概念,所有路徑都以根目錄 為參考。獲取程序所在目錄的參考 如下。getmodulefilename null,gszpath,max path intlen wcslen gszpath tchar p gszpath len while p t p t 0 或者...