2010-08-12 39 views
1

如何將日期存儲在數據庫中的格式從mm/dd/yyyy更改爲dd/mm/yyyy?由於MSHFlexGrid直接從數據庫中讀取數據,其來源需要以dd/mm/yyyy格式存儲日期。在dd/mm/yyyy文本框中讀取mm/dd/yyyy沒有問題。請幫助!在數據庫中更改存儲日期格式

+0

你能告訴我們你正在使用哪個數據庫嗎? – StuartLC 2010-08-12 11:38:56

回答

2

日期通常以不可知形式存儲在數據庫中,它們僅以本地化格式顯示。你需要看看你的系統/組件的本地化設置和/或修改你的SELECT查詢以你需要的格式返回日期(儘管我懷疑Grid仍然會以美國格式顯示它)。

+0

+1。如果可以,請更改系統上的區域設置。否則,請嘗試更改SQL查詢以返回字符串而不是本機日期類型。正如拉扎魯斯所說,電網可能仍然會決定字符串是一個日期並相應地進行格式化。 – MarkJ 2010-08-12 13:24:12

+0

謝謝我收到了答案。通過手動更改註冊表項[HKEY_CURRENT_USER \ Control Panel \ International]「sShortDate」=「M/D/yyyy」爲「sShortDate」=「d/M/yyyy」。但是,我如何使用Code來做到這一點? – 2010-08-12 14:04:34

+1

我不確定你應該重寫代碼,這是本地系統設置。在美國,你所看到的格式是正確的,在日本,他們會期望dd.mm.yyyy,所以最好讓本地機器決定(以及有效的用戶)如何爲它們表示日期。 – Lazarus 2010-08-12 15:31:40

1

「的MSHFlexGrid的從直接讀取數據 數據庫「

當然,它必須使用中間的東西,例如數據環境設計師,ADODB Recordset等?

'MSHFlexGrid'中的'H'表示分層結構:您是否顯示分層數據將分層ADODB Recordset綁定到網格的DataSource屬性?

如果您不需要分層數據,請考慮Microsoft DataGrid(MSDatGrd.ocx)。您可以將一個非層次的ADODB Recordset綁定到它並利用它的Columns的DataFormat屬性,這些屬性的類型爲StdFormat.StdDataFormat,即分別爲_Format和_UnFormat分別具有事件。我用這個來一秒精度增加DATETIME值,替換「」 NULL等

UPDATE:

您可以創建一個使用BindingCollection對象(數據接收器需要Microsoft數據的引用綁定集合VB 6.0),因爲Binding對象支持DataFormat屬性。有關工作示例,請參閱Data Sources, Data Sinks

http://www.aivosto.com/visdev/data.html

+0

是的,我使用Set MSHFG1.DataSource = adodc1.Recordset。 MSHFlexGrid MSHFG1是控件的名稱 – 2010-08-16 05:54:04

+0

我使用MSHFlexGrid,因爲它是隻讀的。我只是希望它顯示這些實例。 – 2010-08-16 06:01:27

0

我不認爲改變系統日期格式是一個完整的解決方案,因爲您可以更改計算機,仍然有同樣的問題,最好的,最簡單的方法是指定的格式,你在想查詢,我不知道你在用什麼數據庫,但我會給你一個例子。

如果網格直接從表中讀取,則需要創建一個從該表查詢的視圖,然後指定該格式。

相關問題