我正在尝试使用Dapper将日期范围插入到Postgres数据库中,使用以下代码:
string INSERT_DATE_RANGE = @"INSERT INTO datetable (daterange) VALUES('[@dateRangeStart, @dateRangeBegin]')";
.... (standard connection stuff)
var startDate = DateTime.Now;
var endDate = DateTime.MaxValue;
connection.Execute(INSERT_DATE_RANGE, new { @dateRangeStart = startDate, @dateRangeBegin = endDate });
这给了我以下错误:
22007:类型日期的输入语法无效:“@ dateRangeStart”
我怀疑这是因为我试图替换的参数在单引号内。但是,如果我删除了引号,则会收到不同的错误消息:
42601:“[”
处或附近的语法错误
有什么建议吗?我可以只连接字符串,但我宁愿不使用该方法,因为它打开了可能的SQL注入。
答案 0 :(得分:3)
将constructor function用于daterange
类型,即:
INSERT INTO datetable (daterange) VALUES (daterange(@dateRangeStart, @dateRangeBegin, '[]'))