Stai sbagliando cercando di includere un valore direttamente nella tua query SQL per cominciare. Utilizzare SQL parametrizzato e specificare il valore come DateTime
e supponendo che la tua tabella del database sia anche usando un campo data/ora (che dovrebbe essere), dovresti andare bene.
Dovresti evitare di includere i valori direttamente nel tuo SQL per tre motivi:
- Ti ritroverai con conversioni di stringhe problematiche che possono utilizzare formati inappropriati, ecc. Questo è il problema qui.
- Stai invitando attacchi SQL injection
- Stai mescolando codice e dati, il che rende più difficile leggere il codice e più difficile controllare i dati
Vuoi qualcosa come:
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
non lo è già un tipo di dati adatto, dovresti cambiarlo...