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

mysql dato klokkeslæt format ved hjælp af c#

Du tager fejl ved at prøve at inkludere en værdi direkte i din SQL-forespørgsel til at starte med. Brug parameteriseret SQL og angiv værdien som en DateTime , og forudsat at din databasetabel også er ved at bruge et dato/dato/klokkeslæt felt (hvilket det skal være), burde du have det fint.

Du bør undgå at inkludere værdier direkte i din SQL af tre grunde:

  • Du ender med besværlige strengkonverteringer, som kan bruge upassende formater osv. Det er problemet her.
  • Du inviterer SQL-injektionsangreb
  • Du blander kode og data, hvilket gør det sværere at læse koden og sværere at kontrollere dataene

Du vil have noget 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
}

Hvis Des.despdate er ikke allerede en passende datatype, bør du ændre det...



  1. Oracle Check Constraint

  2. org.hibernate.ObjectDeletedException:slettet objekt vil blive gemt igen ved kaskade (fjern slettet objekt fra tilknytninger)

  3. MySQL:fjern på hinanden følgende duplikerede værdier

  4. Hvordan indsætter man flere rækker i en mysql-database på én gang med forberedte udsagn?