使用DATETIME2(7)
将值插入SQL Server的SqlCommand
列中的适当方法是什么?
以下是我的尝试:
DateTime d = new DateTime(2000, 1, 1, 0, 0, 0).AddTicks(1111111);
using (SqlCommand cmd = conn.CreateCommand()) {
cmd.CommandText = "INSERT DtTest VALUES(@d)";
cmd.Parameters.AddWithValue("@d", d);
cmd.ExecuteNonQuery();
}
但是当我检查数据库中的值时,我得到:
2000-01-01 00:00:00.1100000
这是四舍五入到DATETIME
精度的值。
我需要做些什么才能获得包含最后五位数的精确值?
答案 0 :(得分:9)
您可以像这样指定列类型:
var sql_parameter = new SqlParameter("@d", SqlDbType.DateTime2);
sql_parameter.Value = d;
cmd.Parameters.Add(sql_parameter);
或者更简洁:
cmd.Parameters.Add( "@d", SqlDbType.DateTime2 ).Value = d;