我有一个MS Access 2010前端/ SQL Server 2012后端数据库,在不同的表中有许多日期字段。有时我需要存储时间,所以我使用了datetime或smalldatetime数据类型。但是某些字段只需要存储日期,所以我使用数据类型Date。
我的问题是在MS Access中,我的ODBC链接表将Date数据类型字段显示为Text。这导致一些日期以yyyy-dd-mm格式存储而其他日期以yyyy-mm-dd格式存储的问题。
这是一个错误吗?我需要使用smalldatetime吗?
感谢您的帮助, 吉姆
答案 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中。