2011-12-07 178 views
1

我有一個Event表,其中有一個名爲start_date的數據類型爲DateTime的列。從C#應用程序日期顯示如07/12/2011和當保存在表中它像2011-08-12 11:00:00.000SQL Server 2008 R2的日期格式

如何將這種日期格式保存爲2011-12-08 11:00:00.000而不是以上?

我沒有在SQL Server中使用存儲過程/函數,而是使用實體框架。我希望自動格式化日期並保存,就像上面一樣。

任何人都請。

+0

你怎麼知道日期保存爲2011-12-08 11:00:00.000?你在數據庫或你的c#應用程序中看到它的位置? –

+0

我不知道爲什麼有些人在回答中提到字符串,但還沒有起牀。你清楚地表明你已經在Entity Fr.中設置了一個字段。到日期時間這是遠離字符串的地獄。當然,像SQL Man一樣。 Studio將日期顯示爲字符串! 我以前遇到SQL Server 2008R2本身的問題,因爲它存儲了我的日期:12/08/2011(dd/mm/yyyy),因爲08/12/2014:/。我必須使用CONVERT()來強制SQL Server才能正確使用它。 這是一個很好的問題,關於如何從EF做到這一點! – Celdor

回答

2

SQL Server中的日期時間不以任何基於字符串的格式存儲 - 它存儲爲數字8字節值。

您看到的字符串表示形式是由您的語言/區域設置定義的默認表示形式,以及SQL Server中的日期格式設置。

0

你不能盡我所知。另外,如果您使用的是SQL Server 2008,請考慮date,timedatetime2數據類型。數據類型主要有datetimeshortdatetime,用於向後兼容。

2

日期不作爲字符串存儲在SQL Server中。這就是管理工作室或您用來查看錶格中的數據的任何應用程序如何呈現它。通常情況下,年月日的順序取決於語言和文化背景。

我認爲你可以使用SET DATEFORMAT混淆默認值,如果你願意的話,但它不會改變日期實際存儲的方式,它們是如何呈現和/或解析的。

相關問題