我有一个访问数据库,其中所有日期都存储在文本中 字段格式为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#中进行修复。
感谢。
答案 0 :(得分:2)
如果这是本地Access应用程序,它会使用您系统的日期时间格式,因此在Windows中更改您的本地化设置以使用MM / DD将使Access以这种方式进行转换,除非在应用程序的某处覆盖了此项。
答案 1 :(得分:2)
格式(CDate(“3/13/2009 11:32:40 PM”),“mm / dd / yyyy”会给你03/13/2009
答案 2 :(得分:2)
对于您当前的问题,您已经得到了很好的答案,但是您似乎以dmy格式运行系统。因此,您应该了解以下内容。
SQL语句要求日期完全明确或以mm / dd / yy或mm / dd / yyyy格式表示。否则,Access / Jet将最好根据其使用的具体日期来解释具有未知结果的日期。您不能假设您正在使用的系统正在使用这些日期格式。因此,您应该使用以下网页上的逻辑。
以美国#mm / dd / yyyy#格式返回日期 http://www.mvps.org/access/datetime/date0005.htm
答案 3 :(得分:0)
Access中的Import函数具有不错的日期解析功能,可以让您指定不同的格式。不确定如何最好地将其应用于Access中的某些内容 - 快速的方法可能是将数据复制到Excel,然后重新导入它。