我有一个访问数据库,其中所有日期都存储在文本中 字段格式为mm / dd(例如:2009年3月13日上午12:20:36)

我想将字段转换为日期/时间,但访问将其格式化为dd / mm 如果日期大于12,那么转换日期可能会如此 是错的。

在DB中以文本形式存储时的当前格式示例:

3/12/2009 11:32:40 PM
3/13/2009 11:32:40 PM

如果我只是从设计视图转换此字段的数据类型 从文本到日期/时间日期类型的表我得到以下内容:

03/12/2009 11:32:40 PM
13/03/2009 11:32:40 PM

我如何修复存储的值? 我不太关心日期将显示的格式,因为我将能够 轻松改变它的外观,但让它们正确地从文本转换为 日期/时间已被证明是棘手的。

我希望直接从访问中修复它,但如果需要,我可以从C#中进行修复。

感谢。

有帮助吗?

解决方案

如果这是本地Access应用程序,它会使用您系统的日期时间格式,因此在Windows中更改您的本地化设置以使用MM / DD将使Access以这种方式进行转换,除非在应用程序的某处覆盖了此项。

其他提示

格式(CDate(“3/13/2009 11:32:40 PM”),“mm / dd / yyyy”将为您提供03/13/2009

对于您当前的问题,您已经得到了很好的答案,但是您似乎以dmy格式运行系统。因此,您应该了解以下内容。

SQL语句要求日期完全明确或以mm / dd / yy或mm / dd / yyyy格式表示。否则,Access / Jet将最好根据其使用的具体日期来解释具有未知结果的日期。您不能假设您正在使用的系统正在使用这些日期格式。因此,您应该使用以下网页上的逻辑。

以美国#mm / dd / yyyy#格式返回日期 http://www.mvps.org/access/datetime/date0005.htm

Access中的Import函数具有不错的日期解析功能,可以让您指定不同的格式。不确定如何最好地将其应用于Access中已有的东西 - 快速的方法可能是将数据复制到Excel,然后重新导入它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top