使用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')