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

Jun Kitamura kitamura @ assiette.net
2002年 2月 27日 (水) 06:58:56 JST


北村です。

PostgreSQL 7.1.3 を使っています。
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
となっています。

実際に実行してみると、秒の整数部分は返ってきません。(下記実行結果)
(date_part と timeofday の実行遅延により、等しい値になりませんが、少なく
とも秒の整数部分が返っていないのは分かる)。

7.2.x でも同じ動きでしょうか?

# 実装が先かマニュアルが先かって問題ですけど、マニュアル先行だった場合、
# 7.1 では間に合わなかったけど、7.2 では実装されてマニュアルどおりの動
# きをするって可能性がありますよね。
# 秒×1000 を足す処理を加えようか、カラムを分けようか(安全だし)っていう
# だけの問題なんですけどね・・・。


test=# select version();
                            version
----------------------------------------------------------------
 PostgreSQL 7.1.3 on i586-pc-linux-gnu, compiled by GCC 2.7.2.3
(1 row)

test=# select date_part('milliseconds', timeofday()::timestamp),timeofday();
 date_part |              timeofday
-----------+-------------------------------------
   494.512 | Wed Feb 27 06:41:06.494824 2002 JST
(1 row)

(期待するのは 6494.xxx)

test=# select extract(milliseconds from timeofday()::timestamp),timeofday();
    date_part     |              timeofday
------------------+-------------------------------------
 639.672000000001 | Wed Feb 27 06:42:26.639992 2002 JST
(1 row)

(期待するのは 26639.xxx)

よろしくお願いします。




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