2016-03-11 34 views
0

使用SqlCommand將值插入到DATETIME2(7)類型的列中到SQL Server中的值的適當方式是什麼?如何插入DateTime2

這裏是我的嘗試:

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

吧,別用'AddWithValue' - 你正在做的代碼猜測的數據類型,爲什麼當你清楚地知道嗎? –

回答

8

您可以指定列的類型是這樣的:

var sql_parameter = new SqlParameter("@d", SqlDbType.DateTime2); 
sql_parameter.Value = d; 
cmd.Parameters.Add(sql_parameter); 
+2

Obligitory鏈接到「[我們可以停止使用AddWithValue()了嗎?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/) 「 –

+0

謝謝你們兩位。 – Andreas

+0

不客氣 –