2012-02-14 50 views
0

如何將Date 02/14/2012轉換爲此格式'20120214'?如何將日期轉換爲8位整數?

我想將日期保存爲數據庫中的整數,因爲它看起來更加靈活。

+6

我永遠不會保存數據爲MM/DD/YYYY,但你肯定其保存爲文本字段YYYYMMDD是比實際日期更好或日期時間字段?大多數(如果不是全部的話)db的支持日期時間。 – andrew 2012-02-14 05:20:17

+1

他說整數,他不說文字。儘管如此,文本的原因,例如不同的維度(20120214一天,201202一個月,2012年一年)。有時使用。 – TomTom 2012-02-14 07:28:11

回答

7

試試這個:

DateTime date = new DateTime(2012, 02, 14); 
string toDb = date.ToString("yyyyMMdd"); 

更新 哦,因爲有一個評論我勸你使用的數據庫引擎,而不是字符串格式使用日期時間字段的數據庫。將日期時間存儲爲文本並不靈活。一些引擎(如Sqlite)不支持日期時間字段,但其中大部分都是。對於日期時間使用字符串格式,強制您應用手動分析和轉換,無論您需要從數據庫獲取值還是將其保存到數據庫。一旦導致錯誤很難找到,就很容易忘記它。在使用日期時間字段時,你不需要記住它。

+0

請注意添加在db中使用datetime字段的註釋,它現在可以靈活地在它之後轉換成維護地獄 – V4Vendetta 2012-02-14 05:44:34

+0

感謝您的評論球員現在我知道該怎麼做 – 2012-02-14 06:17:48

0

您可以使用的ToString自定義DateTime格式字符串爲您DateTime實例信息:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

dateTime.ToString("yyyyMMdd")

幾乎所有的數據庫,但是有一種將日期存儲爲日期而不是字符串的方法,您可能需要調查該日期。如果您在日期上執行數學計算,將日期保留爲日期數據類型將有助於避免潛在的本地化問題和其他與日期相關的問題。

1

請嘗試。

string[] dtPart = "02/14/2012".Split('/'); 

DateTime dt = new DateTime(int.Parse(dtPart[2]), int.Parse(dtPart[0]), int.Parse(dtPart[1])); 
int result = int.Parse(dt.ToString("yyyyMMdd")); 
1

DateTime.Now.ToString(「yyyyMMdd」);然後使用Convert.ToUInt32將其轉換爲整數(如有必要)。

但我認爲DateTime類型比數據庫中的整數或字符串更好。那麼您可以根據需要格式化DateTime。

0

使用.ToString("yyyMMdd")

試試這個:

Msgbox(Now.ToString("yyyMMdd")) 
+0

緩慢地,這不適用於年<1000,其中「yyyyMMdd」。 – 2012-07-02 06:27:31