【PostgreSQL】曜日を取得する

PostgreSQL自作関数

曜日を取得する自作関数

引数の日付から曜日を取得する自作関数です。

 

使用する構文

曜日を取得するには「date_part」を使用します。

返り値は数値となるため、読みかえが必要です。(0=日 , 1=月 , 2=火 , 3=水 , 4=木 , 5=金 , 6=土

--曜日を取得する ※ 'dow' = Day of Weekの略
date_part('dow', timestamp)
date_part('dow', date)

--使用例
select date_part('dow', now());                  -- 3 (水曜日)
select date_part('dow', timestamp '2021/1/1');   -- 5(金曜日)
select date_part('dow', date '2021/2/1');        -- 1(月曜日)

 

引数

引数1(timestamp without time zone): 曜日を取得する日(タイムスタンプ)

 

返り値

日 , 月 , 火 , 水 , 木 , 金 , 土 の文字列

 

コード

CREATE OR REPLACE FUNCTION get_dayofweek(t_day timestamp without time zone)
  RETURNS character varying AS
$BODY$
declare
	c_dayofweek	character varying;
begin

	select	case 
		when date_part('dow', t_day) = 0 then '日'	
		when date_part('dow', t_day) = 1 then '月'
		when date_part('dow', t_day) = 2 then '火'	
		when date_part('dow', t_day) = 3 then '水'
		when date_part('dow', t_day) = 4 then '木'	
		when date_part('dow', t_day) = 5 then '金'
		when date_part('dow', t_day) = 6 then '土'	
	else	
		null
	end	into c_dayofweek;

	return c_dayofweek;

end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

※ PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら

 

実行例(呼び出し例)

select get_dayofweek(timestamp '2021/01/01');  -- 金
select get_dayofweek(date '2021/1/10');        -- 日

 

関連記事

現在日時、システム日時の取得

日付の加算、週の加算、月の加算

日付であるかのチェック(IsDate)【自作関数】

2つの日付の差を計算する【自作関数】

西暦から和暦へ変換する【自作関数】

次の月曜日、火曜日、○曜日を求める(next_day関数)【自作関数】

月末日を取得する(LAST_DAY)【自作関数】