2007-11-14

PostgreSQLのTimestamp型フィールドでマイクロ秒を切り捨てようとした時の動作がアホアホな件について

PostgreSQLには date_trunc() っていう関数があって、指定した日付時刻フィールド未満の値を切り捨て出来るんだけど、
他の処理系ではまず扱ってもらえないマイクロ秒を切り捨てようとして

date_trunc('milliseconds', timestamp '2007-11-14 19:49:56.487924')

のようにしたら何故か '2007-11-14 19:49:56.488' を返してきた。( 8.0.13, 8.2.4で確認 )
その動作は truncじゃなくて round っていうんじゃないだろうか。さーせん、これ仕様ですかバグですか。

しょうがないので - interval '00:00:00.000500' してから date_truncにかけるようSQLを修正。
というか、だいたいマイクロ秒なんて本当にちゃんと計測して入れてるのか?
マイクロ秒対応と言いたいだけちゃうんかと小一時間(以下略)

0 件のコメント:

コメントを投稿

<< ホーム