今回は、Silverの「S3 開発/SQL - S3.2 組み込み関数(時間関数)」からの出題です。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2012年2月23日
現在日時を取得する主な関数には、current_date, current_time,
current_timestamp, nowなどがあります。それぞれの戻り値の型は、
current_date: DATE型
current_time: TIME WITH TIME ZONE型
current_timestamp: TIMESTAMP WITH TIME ZONE型
now: TIMESTAMP WITH TIME ZONE型
となっています。
current_dateは関数ですが、括弧を付けずに
SELECT current_date;
のようにしなければなりません。
current_time と current_timestamp は引数として精度(秒の小数点以下の桁数)を指定でき、この場合は
SELECT current_time(2);
のように括弧をつけますが、精度を指定しない場合は、
SELECT current_timestamp;
のようにカッコを付けずに使います。
now は引数を取りませんが、括弧を付けて
SELECT now();
のようにする必要があります。
従って、正解はCとEです。
なお、current_date, current_time, current_timestampはANSI標準でも定義されているので、他の多くのRDBMSでも同じように使用できますが、nowは、PostgreSQLやMySQLなど一部のRDBMSでしか利用できません。現在時刻を取得する場合は、なるべくcurrent_timestamp関数を使うようにした方が良いでしょう。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.