「S3 開発/SQL - S3.2 組み込み関数(時間関数)」からの出題です。
create table dt_sample(pk integer primary key, dt1 date, dt2 date, ti1 time, ts1 timestamp);
このテーブルについて以下の演算をしたときの結果の説明として適切なものを3つ選びなさい。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2022年11月30日
PostgreSQLのデータ型で日付・時刻などに関連したものには、日付を表すDATE型、時刻を表すTIME型、日時を表すTIMESTAMP型、時間間隔を表すINTERVAL型などがあります。
DATEには時刻が含まれず、TIMEには日付が含まれないことに注意してください。TIMEとTIMESTAMPはマイクロ秒の精度で時刻を保持します。
さて、日時に関する算術演算ですが、DATE型に整数を足し算あるいは引き算することができ、そのときの整数値は日数として扱われます。DATE型同士で引き算をすることも可能で、2つの日付の間の日数が整数で返されます。
TIMEとTIMESTAMPについては、整数との足し算や引き算をすることができません。例えばある時刻に10を足すとして、それだけの情報では10秒後なのか、10分後なのか、それとも10日後なのか、わかりませんよね。でも時間の足し算や引き算をしたいことはあります。そんなときは、INTERVAL型を使います。例えば ti1 + interval ‘100 second’ とすればti1の100秒後になりますし、ts1 + interval ’10 day’ とすれば、ts1の10日後になります。
DATEとTIMEは足し算することができて、その結果はTIMESTAMP型になります。
従って正解はA、B、Eです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.