ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3895601 TIMESTAMPTZの値について
質問者:titokani こんにちは。
PostgreSQL+PerlでCGIを書いています。
テーブルのtimezonetz型の値の最大値を取り出して加工したいのですが、
うまくいかず悩んでおります。
単に最大値を取り出すだけなら、
SELECT max(lastdate) FROM table;
でできました。しかし、この値を
$sth->execute();
$last=$sth->fetchrow;
として取り出しても、文字列となってしまいます。

perl側で加工するのは、フォーマットが環境によって違ったりする心配がありましたので、サーバー側でできないものかと思い、

SELECT EXTRACT(EPOS FROM TIMESTAMPTZ lastdate) FROM table;
としてみましたが、
「"max"またはその近辺で構文エラー」とメッセージが出てしまいます。
こういった場合、いったいどのように書けばよいのでしょうか?

PostgreSQLのバージョンの確認方法がわからず、バージョンは不明なのですが、つい先日インストールしてもらったばかりなので、そう古いものではないと思います。
OSはunix(Solaris)です。よろしくお願いします。
困り度:
  • 困っています
質問投稿日時:
08/03/26 10:11
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.1 はじめまして、titokaniさん

SELECT EXTRACT(EPOCH FROM lastdate) FROM table ORDER BY lastdate DESC LIMIT 1

これでいかがでしょうか?

一応、以下の構成で試しています。

OS:VineLinux4.2
Database:PosgreSQL8.2
pgAdmin3(WinXp)
回答者:oops1967
種類:回答
どんな人:一般人
自信:参考意見
回答日時:
08/03/27 10:16
参考URL: http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/functions-...
この回答へのお礼TIMESTAMPTZが余計だったんですね。(EPOSはタイプミスでした)。

無事動きました。ありがとうございました。