方法一:
select current_date +cast(-1*(to_number(to_char(date (current_date),'d'),'99')-2) ||' days' as interval)
解析:to_number 將乙個字串轉換成數字
格式:to_number(string,format)
-- 一周裡的日子(1-7;週日是1)
select to_char(current_date ,'d')
ddd 一年裡的日子(001-366)
dd 乙個月裡的日子(01-31)
d 一周裡的日子(1-7;週日是1)
-- 將得到的字串轉換成數字
select to_number(to_char(current_date,'d'),'99')
-- 因為得到的星期一為2,所以要減去2
select to_number(to_char(current_date,'d'),'99')-2
-- 將得到的數字乘以 -1 比如例子中:-1*3 就是 -3 ,也就是減去 3天
select cast(-1*3 || 'days' as interval)
-- 就是將當天減去0天 得到了星期一的日期
select cast(-1*0 || 'days' as interval) + current_date
select to_char(current_date +cast(-1*(to_number(to_char(current_date,'d'),'99')-2) ||' days' as interval),'yyyy-mm-dd');
方法二:
select to_char('2019-09-27'::date - ( case when extract(dow from timestamp '2019-09-27') = 0 then 6
when extract(dow from timestamp '2019-09-27') = 1 then 0
else extract(dow from timestamp '2019-09-27') -1
end )::integer,'yyyy-mm-dd') as 星期一日期
,to_char('2019-09-27'::date + ( case when extract(dow from timestamp '2019-09-27') = 0 then 0
else 7- extract(dow from timestamp '2019-09-27')
end )::integer,'yyyy-mm-dd') 星期日日期
select extract(dow from cast('2019-04-23' as timestamp))
select to_char(cast(-1*(to_number(to_char(to_date('2019'||'-01-01','yyyy-mm-dd'),'d'),'99')-2)|| 'days' as interval) + to_date('2019'||'-01-01','yyyy-mm-dd'),'yyyy-mm-dd') 在2023年1月1日所屬星期的星期一日期
, to_char(to_date(cast(-1*(to_number(to_char(to_date('2019'||'-01-01','yyyy-mm-dd'),'d'),'99')-2)|| 'days' as interval) + to_date('2019'||'-01-01','yyyy-mm-dd'),'yyyy-mm-dd')
+cast(38*7|| 'days' as interval),'yyyy-mm-dd') 第38周的開始時間
, to_char(to_date(cast(-1*(to_number(to_char(to_date('2019'||'-01-01','yyyy-mm-dd'),'d'),'99')-2)|| 'days' as interval) + to_date('2019'||'-01-01','yyyy-mm-dd'),'yyyy-mm-dd')
+cast(38*7+6|| 'days' as interval),'yyyy-mm-dd') 第38周的結束時間
根據年,周獲取周的第一日日期
public static void main string args 指定星期幾即可 public static localdate parse string text 需要注意的是這裡一周是從週日開始到週六結束的,2018 482表示的是2018年第48個星期的第二天也就是星期一,即2018年1...
PostgreSQL根據查詢結果執行插入或更新操作
最近需要把老專案中oracle語法改為pg的,其中乙個邏輯為匯入excel資料,根據資料的唯一標識做插入或者更新操作,資料庫中有此資料,則執行更新,反之插入。oracle declare v count number begin select count 1 into v count from un...
根據指定日期獲取周,月,年的開始和結束時間
獲取本週的第一天日期和最後一天日期 按中國周 param todaytime 2017 03 15 return arr 0 第一天日期 arr 1 最後一天日期 throws parseexception public static string getweekstartandenddate st...