私はNpgsql 3.0.3.0とPetaPoco最新バージョンを使用しています。PostgreSQL:42883オペレータが存在しません:タイムゾーンなしのタイムスタンプ=テキスト
私は、このコマンドを実行すると:
Npgsql.NpgsqlException 42883: operator does not exist: timestamp without time zone = text
は、私は、エラーメッセージが私がタイムスタンプ(日付)を比較しようとしていると言っている理解:私は次のエラーを取得する
var dateCreated = DateTime.Now; // just an example
var sql = new Sql("WHERE date_created = @0", dateCreated.ToString("yyyy-MM-dd HH:00:00"));
var category = db.SingleOrDefault<Category>(sql);
をしかし、私にとっては、私がと期待しているので、それらを比較することは完全に有効です。次のSQL文を作成します。
SELECT * FROM category WHERE date_created = '2017-02-03 15:00:00'
パフォーマンス上の理由から、実際にデータベース列をテキストに型キャストしたくありません。
なぜ私は 'ToString()'で日時をフォーマットしているのですか?というのは、分と秒を無視する必要があるということです。 – AndreFeijo
分と秒をゼロにしてC#でDateTimeを作成するだけで、これを行うこともできます。これは効果的です。文字列を使用するだけです。間違いなくそれほど重要ではありません。 –