Inserción del intervalo de fechas de Postgres usando Dapper y Npgsql

dapper date-range npgsql postgresql

Pregunta

Intento usar Dapper para insertar un rango de fechas en mi base de datos de Postgres, usando un código como este:

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 });

Esto me da el siguiente error:

22007: sintaxis de entrada no válida para la fecha de tipo: "@dateRangeStart"

Sospecho que esto se debe a que los parámetros que trato de reemplazar están dentro de las comillas simples. Sin embargo, si elimino las citas, aparece un mensaje de error diferente:

42601: error de sintaxis en o cerca de "["

¿Alguna sugerencia? Podría concatenar la cadena, pero preferiría no usar ese enfoque ya que abre las cosas a una posible inyección SQL.

Respuesta aceptada

Use la función constructora para el tipo de daterange , es decir:

INSERT INTO datetable (daterange) VALUES (daterange(@dateRangeStart, @dateRangeBegin, '[]'))


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué