【发布时间】:2021-10-06 08:44:38
【问题描述】:
我正在尝试获取日期与给定日期相同或晚于给定日期的记录。但是这个异常一直在发生:
Npgsql.PostgresException: '42883: 运算符不存在:字符变化 >= 没有时区的时间戳'
这是我的代码:
var bairro = "test";
var dataBusca = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
var buscaImovel = _context.ImovelModel
.Where(context => context.bairronome == bairro &&
context.datageracaoarq >= DateTime.Parse(dataBusca)).ToList(); //exception happens here
我数据库中的日期使用的是“yyyy-MM-dd”时间戳。可能是什么问题?
【问题讨论】:
-
错误非常具体:
operator does not exist:character varying >= timestamp without time zone'。所以我要说数据库中的字段是varchar而不是timestamp。如果是这样,将时间戳保存在字符字段中不是一个好主意。您的选择:1)更改为timestamp类型 2)在查询中将 varchar 转换为timestamp。 -
@AdrianKlaver 是的,数据库中的字段是 varchar。但是,如果我尝试在查询中转换它,则会发生这种情况:“System.InvalidOperationException:'LINQ 表达式......无法翻译。”所以我认为查询是正确的,问题可能是其他问题..
标签: c# asp.net postgresql linq