使用c#在sql数据库中插入datetime值

如何将日期时间值插入到SQL数据库表中,其中列的类型是datetime?

以下应该工作,是我的建议(参数化查询):

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) + "')"; 

并执行查询。 DateTime.Now是插入当前日期时间..

使用格式yyyy-mm-dd hh:mm:ss更为标准(IE: 2009-06-23 19:30:20

使用它您不必担心日期的格式(MM / DD / YYYY或DD / MM / YYYY)。 它将适用于所有这些。

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

我写这篇文章已经有一段时间了,所以这可能并不完美。 但一般的想法是存在的。

警告:这是未经过清理的。 您应该使用参数来避免注入攻击。

编辑:自从乔恩坚持。

您可以将DateTime值作为String以其特殊格式发送到SQL中。 这种格式是“yyyy-MM-dd HH:mm:ss”

示例: CurrentTime是一个变量as datetime Type in SQL。 而dt是.Net中的DateTime变量。

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

将现有DateTime对象转换为带有单引号的string 。 只要它有效,我认为它的格式并不重要。

像这样的东西:

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

您可以选择创建新格式并将其作为参数传递给data.ToString(format) ;

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