And*_*ijo 5 c# postgresql npgsql petapoco
我正在使用Npgsql 3.0.3.0和PetaPoco最新版本。
当我运行此命令时:
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);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Npgsql.NpgsqlException 42883:操作符不存在:没有时区的时间戳=文本
我知道错误消息是说我正在尝试将时间戳记(日期)与文本进行比较,但是对我来说,将它们进行比较是完全有效的,因为我希望构建以下SQL语句:
SELECT * FROM category WHERE date_created = '2017-02-03 15:00:00'
Run Code Online (Sandbox Code Playgroud)
出于性能原因,我真的不想将数据库列转换为文本。
您需要将值转换为timestsamp:
var sql = new Sql("WHERE date_created = @0::timestamp", dateCreated.ToString("yyyy-MM-dd HH:00:00"));
Run Code Online (Sandbox Code Playgroud)
小智 5
您需要将文本显式转换为时间戳。
尝试使用:
TO_TIMESTAMP(date_string,'YYYY-MM-DD')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11213 次 |
| 最近记录: |