2010-08-12 106 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

我不认为改变系统日期格式是一个完整的解决方案,因为您可以更改计算机,仍然有同样的问题,最好的,最简单的方法是指定的格式,你在想查询,我不知道你在用什么数据库,但我会给你一个例子。

如果网格直接从表中读取,则需要创建一个从该表查询的视图,然后指定该格式。