inserire il valore datetime nel database sql con c #

Come inserisco un valore datetime in una tabella del database SQL in cui il tipo della colonna è datetime?

Il seguente dovrebbe funzionare ed è la mia raccomandazione (query parametrizzata):

DateTime dateTimeVariable = //some DateTime value, eg DateTime.Now; SqlCommand cmd = new SqlCommand("INSERT INTO  () VALUES (@value)", connection); cmd.Parameters.AddWithValue("@value", dateTimeVariable); cmd.ExecuteNonQuery();
  DateTime time = DateTime.Now; // Use current time string format = "yyyy-MM-dd HH:mm:ss"; // modify the format depending upon input required in the column in database string insert = @" insert into Table(DateTime Column) values ('" + time.ToString(format) + "')"; 

ed eseguire la query. DateTime.Now è inserire il datetime corrente.

È più normale utilizzare il formato aaaa-mm-gg hh: mm: ss (IE: 2009-06-23 19:30:20 )

Usando questo non dovrai preoccuparti del formato della data (MM / GG / AAAA o GG / MM / AAAA). Funzionerà con tutti loro.

 using (SqlConnection conn = new SqlConnection()) using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "INSERT INTO  () VALUES ('2010-01-01 12:00')"; cmd.ExecuteNonQuery(); }

È passato del tempo da quando ho scritto questa roba, quindi potrebbe non essere perfetto. ma l’idea generale è lì.

ATTENZIONE: questo non è animato. È necessario utilizzare i parametri per evitare attacchi di iniezione.

EDIT: Dal momento che Jon insiste.

puoi inviare il tuo valore DateTime in SQL come una stringa con il suo formato speciale. questo formato è “aaaa-MM-gg HH: mm: ss”

Esempio: CurrentTime è una variabile come tipo datetime in SQL. E dt è una variabile DateTime in .Net.

 DateTime dt=DateTime.Now; string sql = "insert into Users (CurrentTime) values ('{0}')"; sql = string.Format(sql, dt.ToString("yyyy-MM-dd HH:mm:ss") ); 

Converti l’object DateTime esistente in una string con citazioni singole attorno ad esso. Non penso che importi davvero quale formato è, purché sia ​​valido.

Qualcosa come questo:

 string data = "'" + date.ToString() = "'"; 

Opzionalmente è ansible creare un nuovo formato e passarlo come parametro a data.ToString(format) ;

 INSERT INTO  () VALUES ('1/1/2010 12:00')