sql >> Database >  >> RDS >> Mysql

mysql datum tijd formaat met c#

U gaat de fout in door om te beginnen een waarde rechtstreeks in uw SQL-query op te nemen. Gebruik SQL met parameters en specificeer de waarde als een DateTime , en ervan uitgaande dat uw databasetabel ook . is met behulp van een datum/datum/tijd-veld (wat het zou moeten zijn), zou het goed moeten komen.

U moet om drie redenen vermijden om waarden rechtstreeks in uw SQL op te nemen:

  • Je krijgt dan lastige tekenreeksconversies die ongepaste formaten enz. kunnen gebruiken. Dat is hier het probleem.
  • U nodigt SQL-injectie-aanvallen uit
  • Je haalt code en gegevens door elkaar, waardoor het moeilijker wordt om de code te lezen en moeilijker om de gegevens te controleren

Je wilt zoiets als:

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
}

Als Des.despdate is niet al een geschikt gegevenstype is, moet u dat veranderen...



  1. wat is het verschil tussen '!=' en '<>' in mysql

  2. MySQL-index vertraagt ​​zoekopdracht

  3. Dynamische Oracle Pivot_In_Clause

  4. java - mysql - selecteer query-outfile - waar wordt het bestand opgeslagen