2011-04-11 71 views
1

我有一個ASP.NET程序正在將日期寫入DD/MM/YYYY中的SQLExpress數據庫日期字段。SQL Express存儲日期爲MM/DD/YYYY格式

當我查看SQL Express中的數據時,它以mm/dd/yyyy存儲。

如何將其配置爲以DD/MM/YYYY格式進行存儲?

+0

比如我寫的datbase日期11月4日/ 2011 09:48:33。當我查看數據庫日期字段時,其04/11/2011 09:48:33 – TeaDrinkingGeek 2011-04-11 08:49:31

+0

我必須處理很多日期區域設置的問題,所以我建議您測試日期,以便日期不能切換月份和日期,仍然有一個有效的日期。所以,如果你在15/04/2011進行嘗試,你會知道它是否按照你期望的格式閱讀(它會失敗,因爲沒有第15個月)。這會給你更多的信息。 – SJuan76 2011-04-11 09:05:23

+0

它很失敗,很奇怪,數據庫中的日期是正確的dd/mm/yyyy。只有當我插入一條記錄時,它會交換dd和mm並存儲它。怪怪的。 – TeaDrinkingGeek 2011-04-11 10:06:47

回答

4

這是不可能的,因爲日期的數字,DD/MM/YYYY或MM/DD/YYYY格式內部存儲的僅僅是顯示數據的格式。但是,您可以通過SQL函數更改數據轉換爲字符串的方式...

+0

這有助於:http://stackoverflow.com/questions/ 5619877/sql-query-doing-strange-thing – TeaDrinkingGeek 2011-04-11 11:00:03

0

也許你可以選擇這樣的:

select CONVERT(varchar(12) , getdate(), 103) 
1

您會看到內部日期表示法(自1900年1月1日以來的天數基本上)的呈現本地化版本。

別擔心。你會得到你的客戶的日期(在一個內部日期表示),這可以格式化你喜歡那裏。

+0

如果我嘗試使用dd/mm/yyyy從數據庫中讀取記錄,那該怎麼辦。我需要將它轉換爲mm/dd/yyyy。當然,這是有趣的。 – TeaDrinkingGeek 2011-04-11 08:56:23

+1

@TeaDrinkingGeek:你**不是以mm/mm/yyyy或mm/dd/yyyy閱讀。用於查看數據的工具使用區域設置或數據庫設置以此方式進行渲染。 – gbn 2011-04-11 09:01:28

+0

問題是如果我使用這個讀取字符串:Convert.ToDateTime(MyReader [「Date」])。ToString(「dd/MM/yyyy」);它讀取它有mm/dd/yyyy。 – TeaDrinkingGeek 2011-04-11 09:53:17

0

正常存儲數據。當您檢索數據,這樣做的代碼:

dateField.ToString("dd/MM/yyyy") 

而你的結果將是:11/04/2011