使用 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, '[]'))