如何插入DateTime2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何插入DateTime2相关的知识,希望对你有一定的参考价值。

使用DATETIME2(7)将值插入到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精度的值。

我需要做些什么来获得包括最后五位数字的精确值?

答案

您可以像这样指定列类型:

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;

以上是关于如何插入DateTime2的主要内容,如果未能解决你的问题,请参考以下文章

DateTime vs DateTime2 [重复]

KDoc:插入代码片段

将代码片段插入数据库并在 textarea 中以相同方式显示

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

如何在 XML SCHEMA 中使用 datetime2 类型?

将 XML 解析为 sql 参数、datetime2 和位问题