更改数据库中存储的日期格式

时间:2010-08-12 11:33:30

标签: vb6

如何将日期在数据库中存储的格式从mm / dd / yyyy更改为dd / mm / yyyy?由于MSHFlexGrid直接从数据库读取数据,其来源需要以dd / mm / yyyy格式存储Date。在文本框中读取mm / dd / yyyy没有问题,如dd / mm / yyyy。请帮助!< / p>

4 个答案:

答案 0 :(得分:2)

日期通常以不可知的形式存储在数据库中,它们仅以本地化格式呈现。您需要查看系统/组件的本地化设置和/或修改SELECT查询以返回您需要的格式的日期(尽管我怀疑网格仍将以美国格式显示)。

答案 1 :(得分:1)

  

“MSHFlexGrid直接读取数据   来自数据库“

当然必须使用中间的东西,例如DataEnvironment设计器,ADODB Recordset等?

'MSHFlexGrid'中的'H'代表分层结构:您是否显示分层数据,例如将分层ADODB Recordset绑定到网格的DataSource属性?

如果您不需要分层数据,请考虑Microsoft DataGrid(MSDatGrd.ocx)。您可以将非分层ADODB Recordset绑定到它并利用其Columns的DataFormat属性,这些属性的类型为StdFormat.StdDataFormat,即分别具有_Format和_UnFormat的事件。我使用它来为DATETIME值添加亚秒级精度,用'等等替换NULL

更新:

您可以使用BindingCollection对象创建数据接收器(需要引用Microsoft Data Binding Collection VB 6.0),因为Binding对象支持DataFormat属性。有关工作示例,请参阅Data Sources, Data Sinks

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

答案 2 :(得分:0)

日期按原样存储。你不能改变它。但是,您可以通过将日期列转换为您需要的任何格式的varchar列来创建计算列并将日期显示为varchar,并显示该列。

(尽管如此,它将以您的形式呈现为只读)

此处的转换功能:http://msdn.microsoft.com/en-us/library/aa226054%28SQL.80%29.aspx

此处的计算列:http://msdn.microsoft.com/en-us/library/ms191250.aspx

答案 3 :(得分:0)

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

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