我在将日期从 c# 插入 SQL Server 时遇到了问题。将日期从 c# 插入到 SQL Server 中的 DateTime 列的正确方法是什么。
目前我的方法是将字符串日期转换为 DateTime 格式,然后插入数据库。
Datetime dt = Convert.ToDateTime(txtDate.Text.Trim());
这样做我遇到了一个错误,当前系统日期与新转换的日期冲突。将字符串日期插入数据库的正确方法是什么?
我在将日期从 c# 插入 SQL Server 时遇到了问题。将日期从 c# 插入到 SQL Server 中的 DateTime 列的正确方法是什么。
目前我的方法是将字符串日期转换为 DateTime 格式,然后插入数据库。
Datetime dt = Convert.ToDateTime(txtDate.Text.Trim());
这样做我遇到了一个错误,当前系统日期与新转换的日期冲突。将字符串日期插入数据库的正确方法是什么?
使用SqlParameter并形成参数化查询。通过这种方式,您会将 .Net DateTime 对象传递给 SQL Server。
就像是:
using (SqlConnection con = new SqlConnection("yourconnectionstring"))
using (SqlCommand cmd = new SqlCommand("INSERT into yourTable([DateCol]) VALUES (@pDate)", con))
{
cmd.Parameters.AddWithValue("@pDate", DateTime.Now);
con.Open();
cmd.ExecuteNonQuery();
}
对于您的问题:
将字符串日期插入数据库的正确方法是什么?
不。而是将日期字符串转换为DateTime
对象,然后使用参数化查询将其插入数据库。
对于您的评论:
您将如何将字符串日期(使用 jquery datepicker)转换为日期时间格式?
您可以使用DateTime.ParseExact
日期时间选择器的格式并将字符串转换为 DateTime 对象。
例如,如果您的 DateTime 选择器格式是:mm/dd/yyyy
那么您可以尝试:
DateTime dt = DateTime.ParseExact(dateString, "mm/dd/yyyy", CultureInfo.InvariantCulture);
使用这样的参数创建查询
SqlCommand cmd = new SqlCommand ("insert into T (...) values (@d",db);
cmd.Parameters.AddWithValue("@d",Convert.ToDateTime(txtDate.Text.Trim());
//...