Você está errado ao tentar incluir um valor diretamente em sua consulta SQL para começar. Use SQL parametrizado e especifique o valor como um
DateTime
, e assumindo que sua tabela de banco de dados também usando um campo de data/data e hora (o que deveria ser), você deve estar bem. Você deve evitar incluir valores diretamente em seu SQL por três motivos:
- Você terá conversões de string problemáticas que podem usar formatos inadequados etc. Esse é o problema aqui.
- Você está convidando ataques de injeção de SQL
- Você está misturando código e dados, o que dificulta a leitura do código e a verificação dos dados
Você quer algo como:
string sql = @"Select distinct v.* from Ven v
inner join Des d on v.venid=d.venid
and cast(d.despdate as datetime) between @start and @end";
using (MySqlCommand command = new MySqlCommand(connection, sql))
{
command.Parameters.AddWithValue("@start", startDateTime);
command.Parameters.AddWithValue("@end", endDateTime);
// Execute the command here
}
Se
Des.despdate
não é já um tipo de dados adequado, você deve alterar isso ...