使用 Dapper 和 Npgsql 插入 Postgres 日期范围
Postgres date range insertion using Dapper and Npgsql
我正在尝试使用 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: invalid input syntax for type date: "@dateRangeStart"
我怀疑这是因为我要替换的参数在单引号内。但是,如果我删除引号,则会收到不同的错误消息:
42601: syntax error at or near "["
有什么建议吗?我可以只连接字符串,但我宁愿不使用这种方法,因为它打开了可能的 SQL 注入。
使用 constructor function 作为 daterange
类型,即:
INSERT INTO datetable (daterange) VALUES (daterange(@dateRangeStart, @dateRangeBegin, '[]'))
我正在尝试使用 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: invalid input syntax for type date: "@dateRangeStart"
我怀疑这是因为我要替换的参数在单引号内。但是,如果我删除引号,则会收到不同的错误消息:
42601: syntax error at or near "["
有什么建议吗?我可以只连接字符串,但我宁愿不使用这种方法,因为它打开了可能的 SQL 注入。
使用 constructor function 作为 daterange
类型,即:
INSERT INTO datetable (daterange) VALUES (daterange(@dateRangeStart, @dateRangeBegin, '[]'))