Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Datumszeitformat mit c#

Sie gehen falsch, wenn Sie versuchen, einen Wert direkt in Ihre SQL-Abfrage aufzunehmen, um damit zu beginnen. Verwenden Sie parametrisiertes SQL und geben Sie den Wert als DateTime an , und vorausgesetzt, Ihre Datenbanktabelle ist auch Wenn Sie ein Datum/Datum/Uhrzeit-Feld verwenden (was es sein sollte), sollten Sie in Ordnung sein.

Sie sollten es aus drei Gründen vermeiden, Werte direkt in Ihr SQL aufzunehmen:

  • Sie werden mit lästigen String-Konvertierungen enden, die unangemessene Formate usw. verwenden können. Das ist hier das Problem.
  • Sie laden zu SQL-Injection-Angriffen ein
  • Sie vermischen Code und Daten, wodurch es schwieriger wird, den Code zu lesen und die Daten zu überprüfen

Sie möchten so etwas wie:

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
}

Wenn Des.despdate nicht schon ein passender Datentyp, das sollten Sie ändern...