Mysql
 sql >> Database >  >> RDS >> Mysql

formato data ora mysql usando c#

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...