[pgsql-jp: 24995] Re: date_part() milliseconds の ver.7.2.x での返り値は?

Tatsuo Ishii t-ishii @ sra.co.jp
2002年 2月 27日 (水) 17:08:43 JST


石井です.

> PostgreSQL 7.1.3 を使っています。
> 7.2 を入れた方に実お願いです。

# どうして自分でやってみないんでしょうかね.プライベートに7.2をインス
# トールすることなど,ディスク領域さえあれば簡単なのに...

> date_part() または EXTRACT の ミリ秒の返り値についての質問です。
> (マイクロ秒でも同じですが)
> 
> マニュアル(下記URL)では、
> http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/functions-datetime.html
> > milliseconds(ミリセカンド)
> > 分数部分も含めた、1000をかけた秒フィールド。秒すべてを返すことに 注意して下さい。 
> > 
> > SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5');
> > 結果: 28500
> となっています。
> 
> 実際に実行してみると、秒の整数部分は返ってきません。(下記実行結果)

マニュアルの例の通りに実行すれば,マニュアルに書いてある通りの結果が返
りますよ.つまり source が TIME なら問題ない.これは7.1でも7.2でも一緒
です.

問題は,source が TIMESTAMP のときの動作ですね.

test=# select current_timestamp,extract(milliseconds from current_timestamp);
          timestamptz          | date_part 
-------------------------------+-----------
 2002-02-27 14:45:53.945529+09 |   945.529
(1 row)

ソースを直すのは簡単ですが,マニュアルが正しいのかどうか今一つはっきり
しないので本家に聞いてみます.
# それとSQL99のスペックも調べてみます.
# 今札幌に出張中なのでちょっと時間がかかるかも知れませんが...
--
Tatsuo Ishii



pgsql-jp メーリングリストの案内