Sql Server日期类型在MS Access中显示为文本字段

时间:2014-12-04 16:37:22

标签: sql-server date ms-access

我有一个MS Access 2010前端/ SQL Server 2012后端数据库,在不同的表中有许多日期字段。有时我需要存储时间,所以我使用了datetime或smalldatetime数据类型。但是某些字段只需要存储日期,所以我使用数据类型Date。

我的问题是在MS Access中,我的ODBC链接表将Date数据类型字段显示为Text。这导致一些日期以yyyy-dd-mm格式存储而其他日期以yyyy-mm-dd格式存储的问题。

这是一个错误吗?我需要使用smalldatetime吗?

感谢您的帮助, 吉姆

2 个答案:

答案 0 :(得分:9)

我自己连接Access 2007和SQL Server 2008也有同样的问题。

请参阅this question,如果你看看Albert D. Kallal对第一个答案的评论,它会告诉我们问题是将前端连接到后端的过时驱动程序。

如果您无法选择最新的驱动程序(请记住,即使可以,不同客户端计算机上的数据库的其他用户可能无法),解决方法是在每种情况下都使用datetime数据类型。

答案 1 :(得分:3)

只是为了阐述@BiigJiim给出的评论我实际上已经安装了Native客户端11.0驱动程序,但是当我创建DSN-Less表连接时,我不得不正式将连接字符串更改为:Driver={SQL Server Native Client 11.0};

另外作为补充说明,我不认为推荐使用Date和DateTime2数据类型进行Microsoft Access集成。如果内存正确地为我服务,它建议使用DateTime和SmallDateTime。我在很多情况下都不需要时间,但你可以通过前端轻松地格式化它......特别是在Access中。