6

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

我想将该字段转换为日期/时间,但访问将其格式化为 dd/mm,这样如果日期大于 12,则转换的日期可能是错误的。

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

2009 年 3 月 12 日晚上 11:32:40
2009 年 3 月 13 日晚上 11:32:40

如果我只是将此字段的数据类型从表格的设计视图从文本转换为日期/时间日期类型,我会得到以下信息:

2009 年 3 月 12 日晚上 11:32:40
2009 年 13 月 3 日晚上 11:32:40

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

最好我想直接从访问中修复它,但如果需要,我可以从 C# 中修复它。

谢谢。

4

4 回答 4

5

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

于 2009-06-17T16:24:36.520 回答
2

Format(CDate("3/13/2009 11:32:40 PM"), "mm/dd/yyyy" 会给你 03/13/2009

于 2009-06-17T17:51:22.063 回答
2

您对当前的问题已经有了很好的答案,但是您似乎正在以 dmy 格式运行您的系统。因此,您应该注意以下事项。

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

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

于 2009-06-18T01:56:26.233 回答
0

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

于 2009-06-17T16:31:19.343 回答