PostgreSQL :: to_date() に関するメモ

to_date() 関数は、日付文字列を日付型に変換する。

特定日の3日後を計算して文字型に変換

select to_char(to_date('20060830', 'YYYYMMDD') + 3, 'yyyy/mm/dd');
⇒ 2006/09/02

'20060830' の引数部分は テーブルのカラム名を入れてもよい。



▼日時カラムの形式が「YYYY-MM-DD HH:MM:SS」の時、「YYYY-MM-DD」で検索したい

SELECT * FROM table WHERE '2007-03-06' = to_date(date_time, 'YYYY-MM-DD')
SELECT * FROM table WHERE '2007-03-06' <= date_time AND date_time < '2007-03-07'
to_date() 関数を使ったほうが比較演算子を使用するよりも直感的で楽。
ただし、to_date() 関数は、ちょっとした調査等の用途の場合のみ使用する。
to_date() 関数によらず関数を使用するとインデックスの恩恵は受けらないと考えておいた方が良い。
webアプリケーション等で検索速度が重要視される場合は 比較演算子 を使用する。