sql >> Databasteknik >  >> RDS >> Mysql

mysql datum och tid format med c#

Du gör fel genom att försöka inkludera ett värde direkt i din SQL-fråga till att börja med. Använd parametrerad SQL och ange värdet som en DateTime , och förutsatt att din databastabell är också genom att använda ett datum/datumtid-fält (vilket det borde vara) borde det gå bra.

Du bör undvika att inkludera värden direkt i din SQL av tre anledningar:

  • Du kommer att sluta med besvärliga strängkonverteringar som kan använda olämpliga format etc. Det är problemet här.
  • Du bjuder in SQL-injektionsattacker
  • Du blandar kod och data, vilket gör det svårare att läsa koden och svårare att kontrollera data

Du vill ha något som:

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
}

Om Des.despdate är inte redan en lämplig datatyp, bör du ändra det...



  1. Hur ställer jag in applikationsnamn i en Postgresql JDBC-url?

  2. Filtrera efter datum och tid MYSQL-formatering

  3. Visningar i SQL Server

  4. Är det möjligt att referera till kolumnnamn via bindningsvariabler i Oracle?