PostgreSQL:タイムスタンプフィールドに「いいね」が付いたデータを選択します



Postgresql Select Data With Like Timestamp Field



解決:

タイムスタンプで「使いたくない」というのはまったく問題ありませんが、これらの演算子はインデックススキャンや文字列一致に変換できます...まあ、それは可能ですが、EWWWWです。

文字列操作を使用する前にタイムスタンプを文字列に明示的に変換する必要があるため、エラーが発生しています。例:



date_checker :: text LIKE '2011-01-%'

そして私 仮定する 次に、インデックスを作成できます(date_checker :: text)そしてその式はインデックススキャンになりますが.... EWWWW。


おそらくdate_trunc関数はあなたの好みに合うでしょう:



... WHERE date_trunc( 'month'、my_table.date_checker)= '2011-01-01'

必要に応じて、その式にインデックスを付けることもできます。


の一部で比較を行う必要がある場合タイムスタンプ、使用する方がはるかに良いですEXTRACT()関数。例えば:

WHERE EXTRACT(YEAR FROM date_checker)= 2011 AND EXTRACT(MONTH FROM date_checker)= 1

日付から抽出できるさまざまな「フィールド」の詳細は、ドキュメントにあります。