es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Coloque una tabla de valores en un control DataGridView filtrado por fecha.

Utilizando ado.net y tratando de filtrar un gridview por fecha, pero sigo recibiendo el Error.

string query1 = $"Seleccionar * from comprar donde [fecha] >= {dmy} y [fecha] < {dmyplus}";
            SqlConnection connection1 = new SqlConnection(ConnetionPath4);
            SqlDataAdapter adapter1 = new SqlDataAdapter(query1, connection1);
            DataTable data1 = new DataTable();
            adapter1.Fill(data1);

por cierto dmy y dmyplus son
var dmy=”‘2021/21/11′”
var dmyplus=”‘2021/22/11′”

Mi Error es “La conversión de un tipo de datos varchar a un tipo de datos datetime resultó en un valor fuera de rango”

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error que estás recibiendo se debe a que el valor de la fecha por la cual estás filtrando está siendo pasado como una cadena en la consulta, pero SQL espera un tipo de dato datetime. Para solucionar esto, debes convertir los valores en cadena de dmy y dmyplus al tipo de dato datetime. Puedes hacer esto usando el método Convert.ToDateTime de la siguiente manera:

    cadena query1 = $"SELECT * FROM buy WHERE [date] >= CONVERT(datetime, '{Convert.ToDateTime(dmy):yyyy/MM/dd}', 120) AND [date] < CONVERT(datetime, '{Convert.ToDateTime(dmyplus):yyyy/MM/dd}', 120)";
    

    El parámetro 120 en el método convert indica el formato de datetime que se está utilizando. Este formato (yyyy/MM/dd) coincide con el formato de las variables dmy y dmyplus.

    Al convertir dmy y dmyplus al tipo de dato datetime, puedes asegurarte de que el valor que estás pasando en la consulta sea interpretado correctamente como una fecha por SQL, y el error debería resolverse.

Comments are closed.