将字段从文本转换为日期/时间时,MS访问错误的日期格式
题
我有一个访问数据库,其中所有日期都存储在文本中 字段格式为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,然后重新导入它。