PostgreSQLの日付計算(誕生日) 初心者向け

前の記事では型の説明をしました。
この記事では型の使い方が理解している程で紹介します。

関数とは

関数は日付けを取得したり文字から日付け型に変換できる機能を持っています。
早速関数を紹介します。

to_date(文字列から日付に変更)

to_dateは文字列を日付型に変更することができます。

to_date('基本的に8桁の日付' , 'YYYYMMDD')

のように記述します。
日付けは記号なしでは基本的に8桁なので8桁で数字を入力します。
「YYYYMMDD」は日付けの表示設定で日本語風に表示すると「年年年年月月日日」と表示しています。

to_date('20200101','YYYYMMDD')

上記の式は文字の’20200101′(2020年1月1日)をYYYYMMDD表示に変換している為結果は

'20200101'(変換前)→20200101(変換後)

となります。
見た目は「 ‘ ‘ 」シングルクォーテーションが無くなっただけのように思えますが、プログラム上は文字から日付へと変換されています。

current_date(現在の日付けを取得)

current_dateは現在の日付けを取得することができます。
特別に()などで囲む必要はありません。
次の項目で使い方を紹介します。

age(主に年齢計算)

ageは主に年齢計算に利用されています。
年齢計算は「現在時刻-誕生日」で結果が出ます。

age(current_date , 20200101)

で2020年1月1日の人の年齢を参照することができます。
ageは引数の中に二つ入れないと年齢の計算をすることができません。もし引数の中が1つの場合は今日の日付から引かれるので注意しましょう。

date_part(日付けの一部を取り出す)

SQLを操作する際に年や月、日など一部だけを取り出したい場合などに利用できます。

date_part('year', 日付)

で年を年出すことができます。

date_part('year', 20200101)

だと2020年だけを取り出してくれます。

interval

intervalもdate_part同様指定した月日を計算することができます。
date_partと異なる点はわざわざ取り出したい箇所を取り出すのではなく、日付けから直接引きたい部分だけを引くことや足すことなどもできます。

current_date - interval '10 years'

この式は現在の日付から直接10年だけを引くことができます。
上記はyearsと「s」がついていますが、数値が1の場合はyearやmonthにしましょう。

これまでの関数を利用した例

2020年1月1日の人の年齢を計算する式を実際に書いてみます。
ちなみに年齢は文字列で指定されていることが条件です。

date_part('year', age(current_date , to_date('20200101' , 'YYYYMMDD')))

おそらくこの式で年齢計算ができるはずです。

The following two tabs change content below.
カメラ歴3年、プログラミング歴半年の23歳会社員。プログラミングはバッグエンドからフロントエンドまで幅広く体験中。カメラは写真だけでなく動画撮影も初めYouTubeに投稿。iPhoneてどれだけ綺麗に動画が撮れるか格闘中!他にもドローン撮影やVR(360°)撮影もしています!https://gotoyusuke.com/
JavaC#PHPServlet JSPSQLPython

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA