如何插入DateTime2

时间:2016-03-11 21:37:51

标签: c# sql-server ado.net

使用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精度的值。

我需要做些什么才能获得包含最后五位数的精确值?

1 个答案:

答案 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;