【PostgreSQL】曜日を取得する

2020年6月21日

スポンサーリンク

説明

曜日を取得します。

 

引数

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

 

返り値

日 , 月 , 火 , 水 , 木 , 金 , 土

 

コード

CREATE OR REPLACE FUNCTION get_dayofweek(timestamp without time zone)
  RETURNS character varying AS
$BODY$
declare
	t_day		alias for $1; 	--引数1:曜日を取得する日(タイムスタンプ)
	
	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;
ALTER FUNCTION get_dayofweek(timestamp without time zone)
  OWNER TO postgres;

 

使用例

select * from get_dayofweek(cast('2020/01/01' as date));       --"水"
select * from get_dayofweek(cast('2020/03/01' as timestamp));  --"日"

 

他にもこんな関数があります(日付操作の関数)

日付を加算する(Date型)

日付であるかのチェック(IsDate)

日付の差を計算する

西暦から和暦へ変換する

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