sql >> Databáze >  >> RDS >> Mysql

mysql formát data a času pomocí c#

Jdete špatně, když se pro začátek pokoušíte zahrnout hodnotu přímo do dotazu SQL. Použijte parametrizované SQL a zadejte hodnotu jako DateTime a za předpokladu, že vaše databázová tabulka je také pomocí pole datum/datum a čas (což by mělo být), měli byste být v pořádku.

Měli byste se vyhnout zahrnutí hodnot přímo do vašeho SQL ze tří důvodů:

  • Skončíte s problematickými převody řetězců, které mohou používat nevhodné formáty atd. Zde je problém.
  • Zvete útoky SQL injection
  • Mícháte kód a data, což ztěžuje čtení kódu a obtížnější kontrolu dat.

Chcete něco jako:

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
}

Pokud Des.despdate není již vhodný datový typ, měli byste to změnit...



  1. Oracle vytvoří tabulku jako hodnotu null

  2. Open source nástroj pro vytváření diagramů ER pro mysql

  3. Existuje nějaký rozdíl mezi !=a <> v Oracle Sql?

  4. Jak omezit hledání a nahrazování řetězce v mySQL