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

Naruhiro Ikeya n-ikeya @ pop09.odn.ne.jp
2002年 2月 27日 (水) 10:25:44 JST


池谷です。
下記の件試してみました。
結果から言うと、7.2でも実装されていないようです。


=> select date_part('milliseconds',timeofday()::timestamp),timeofday();
 date_part |              timeofday              
-----------+-------------------------------------
   373.966 | Wed Feb 27 10:09:02.374203 2002 JST

=> select extract(milliseconds from timeofday()::timestamp),timeofday();
    date_part     |              timeofday              
------------------+-------------------------------------
 979.101999999997 | Wed Feb 27 10:09:59.979183 2002 JST


一応環境等を記しておきます。
OS
Laser5 Linux 7.1 FTP版
PostgreSQL version 
PostgreSQL7.2 on i686-pc-linux-gnu, compiled by GCC 2.96
configure
--with-java --with-tcl --enable-syslog --enable-multibyte \
--enable-locale --enable-nls


> 北村です。
> 
> 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)
> 
> よろしくお願いします。
> 
> 


---
Naruhiro Ikeya





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