我有一個nvarchar類型的列表。我會通過以下參數:將DateTime轉換爲nvarchar
cmd.Parameters.Add("@PointDate", SqlDbType.NVarChar).Value = DateTime.Now;
和expected'm得到錯誤:
Additional information: Error converting data type nvarchar to datetime.
如何轉換日期時間爲nvarchar?
我有一個nvarchar類型的列表。我會通過以下參數:將DateTime轉換爲nvarchar
cmd.Parameters.Add("@PointDate", SqlDbType.NVarChar).Value = DateTime.Now;
和expected'm得到錯誤:
Additional information: Error converting data type nvarchar to datetime.
如何轉換日期時間爲nvarchar?
它看起來像你試圖在你的數據庫中做的任何事情都期待一個名爲「PointDate」,但類型NVarChar的參數。當然,你可以改變,要成爲一個日期類型:
cmd.Parameters.Add("@PointDate", SqlDbType.DateTime).Value = DateTime.Now;
,如果你所做的一切在數據庫中確實已經是一個字符串,然後
cmd.Parameters.Add("@PointDate", SqlDbType.NVarChar).Value = DateTime.Now.ToString();
的您可能需要添加一個格式說明符ToString函數來匹配您的數據庫所期望的任何內容。
轉到此解決方案,此答案將解決該問題。 –
它工作Gilchrist,謝謝。 –
它的工作原理,但它** **幫助**?您絕對不應該使用字符串類型來保留日期值。爲您的列使用適當的數據類型。 –
'DateTime.Now'的'SqlDbType.NVarChar'? o.O如果你的列是'NVarChar',爲什麼你給它發送'DateTime'值?如果您發送'DateTime'值,爲什麼您的列是'NVarChar'?您應該**總是**爲您的值選擇正確的數據類型。閱讀[不良習慣踢:選擇錯誤的數據類型](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data- type.aspx) –
不要將'DateTime'轉換爲字符串/ nvarchar。相反,將它作爲DateTime傳遞,請確保您的表中的字段也是DateTime類型的DateTime – Habib
您始終可以在DateTime對象上調用ToString()。但正如前面的評論指出的那樣,類型的選擇不好。 – Kryptos