2012-06-19 51 views
5

我嘗試了幾種方法來檢索datetime2(3)等效於C#代碼,但徒勞無功。DateTime.Now在C#中產生Datetime2(3)在SQL Server數據類型

其中之一如下。

DateTime dt = DateTime.Now.AddMilliseconds(DateTime.Now.Millisecond); 

我需要的格式如下:

YYYY-MM-DD HH:MM:SS.FFF 

但是從上面的代碼中,我得到了以下結果

6/19/2012 11:15:08 PM 

當我嘗試以下方法,

string myTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"); 
DateTime dd = Convert.ToDateTime(myTime); 

投擲錯誤

字符串未被識別爲有效的DateTime。

我只需要datetime2(3)格式的日期,而您可以建議我另存爲nvarchar。但我需要根據它們被更新的datetime2對條目進行排序。

有沒有其他方法可以解決這個問題?

+0

也許你應該添加一些例子和一些更多的細節。你如何「存儲」那個日期?數據庫列是什麼類型? –

+0

您正試圖將日期和時間保存到數據庫中的datetime2(3)列?如果是這樣,你好嗎?使用標準的'DataSet',一個類型化的數據集,一個帶有動態生成的SQL語句的命令和連接成字符串的值,或者一個帶參數的命令? –

+0

@ both:我想將DateTime.Now插入到datetime2(3)的Sql數據類型中。通過使用流利NHibernate我想實現它。 – viento

回答

14
var format = "yyyy-MM-dd HH:mm:ss:fff"; 
var stringDate = DateTime.Now.ToString(format); 
var convertedBack = DateTime.ParseExact(stringDate, format, CultureInfo.InvariantCulture); 

DateTime是表示日期和時間的數據類型,不存儲格式信息。毫秒總是存儲在DateTime中。唯一需要指定毫秒的時間是選擇如何將DateTime表示爲另一種類型(如字符串)的時間。

+0

2012/6/19 11:39:10 PM這就是我得到的結果凱文。 – viento

+1

當你說你「得到了2012年6月19日11:39:10」時,你在哪裏看到那個價值?在調試器中?安慰?無論顯示DateTime值是應用格式。毫秒仍然存儲在該值中。 –

+0

好吧,我明白了。我在Console中看到它。但它有效的人。它被保存在數據庫中。謝謝。我本可以給你+1分,但我沒有足夠的分數。不管怎麼說,還是要謝謝你。 – viento

相關問題