[pgsql-jp: 30051] Re: 月数の取得(datetime 関数の代替)

T.Suzuki t_suzuki @ kenwood-eng.co.jp
2003年 5月 27日 (火) 09:55:56 JST


鈴木@KEGと申します。

From: "Hisashi Chiba" <ch-999 @ beige.plala.or.jp>
> MM=`psql -d zaimu -A -t -c "select
to_char(datetime(to_char(MIN(keiri_date),'9999-99-99')),'MM')
> from daily;"`
> TM=`psql -d zaimu -A -t -c "select
to_char(datetime(to_char(MIN(keiri_date),'9999-99-99')),'MM')
> from temp;"`
> if [ "$MM" != "$TM" ] ; then
>
> #ここで、$MM と $TM は文字列として考えています。

datetime型へのキャストが出来ないようです。

取りあえず、以下の様にDate型へ変換すれば実行できます。
(datetimeじゃなくてdateを使用)
#psql -d template0 -A -t -c "select
to_char(date(to_char(20030527,'9999-99-99')),'MM')
#psql -d template0 -A -t -c "select
to_char(to_char(20030527,'9999-99-99')::date,'MM')

datetime型は過去バージョンとの互換性の為に存在していたのですが、
7.3で使えなくなったのでしょうか?

#select typname from pg_type where typname like '%time';
としても、datetimeが見当たらないですね…。
リリースノートを見ても記述はありませんでした。

表やその他SQLで、datetime型を使用しているのでしたら
修正したほうがよさそうですね。
 -----------------------------------------
      鈴木 徹 (SUZUKI Toru)
      KENWOOD ENGINEERING CORPORATION
      E-mail:t_suzuki @ kenwood-eng.co.jp
 -----------------------------------------




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