タイムスタンプでマイクロ秒ではなく整数秒を利用する

PostgreSQL では

SELECT CURRENT_TIMESTAMP
SELECT now()

などとすると、

2006-08-02 22:14:42.642554

のように、小数点以下の秒数まで表示してくれます。
 
これはこれでいいのですが、小数点秒を扱う必要のないケースもあります。
 
その場合は、timestamp(0) 型として扱うことで小数点以下を四捨五入します。

SELECT CAST(CURRENT_TIMESTAMP AS timestamp(0))

のようにすると、先程の結果は次のようになります。

2006-08-02 22:14:43

 
テーブルの場合も、

CREATE TABLE foo (
  created_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
);

から

CREATE TABLE foo (
   created_on timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP
);

のようにすることで、整数秒として保存するようになります。