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

2021年8月8日PostgreSQL自作関数

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

特定の文字列が日付であるかチェックします(=日付に変換できるかをチェックします)

 

引数

引数1(character varying): チェックする文字列

 

返り値

true:日付である false:日付でない

 

コード

CREATE OR REPLACE FUNCTION isdate(c_day character varying)
  RETURNS boolean AS
$BODY$
declare
	d_temp 		date;  --一時変数
BEGIN

	select cast(c_day as date) into d_temp;

    --castできる時はtrueでリターン
	return TRUE;
	
	EXCEPTION
	WHEN OTHERS THEN
	--castできずエラーになる時はfalseでリターン
	return FALSE;

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

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

 

実行例

select isdate('20190101');     -- true
select isdate('2019/01/01');   -- true
select isdate('abc');          -- false
select isdate('20190132');     -- false(存在しない日付はfalseとなる)

 

関連記事

文字を日付に変換する、書式を設定する(cast、to_char、to_date)

timestampのwithout time zoneとwith time zoneの違い

日時、時刻の書式設定をする(yyyymmdd形式)

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

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

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

日付を加算する(timestamp型)【自作関数】

日付を加算する(Date型)【自作関数】

曜日を取得する【自作関数】

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

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

年月日の文字列から日付を作成する【自作関数】

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

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