将链接到SQL Server DateTime2(0)的Access Date/Time Extended转为Date/Time的方法
Access链接SQL Server DateTime2(0)字段适配方案
核心适配思路
Access的Date/Time类型和SQL Server的DateTime2(0)本质都是日期时间类型,不需要大量字符串处理,通过调整链接表的ODBC配置和字段映射即可兼容。
具体操作步骤
- 调整ODBC驱动配置:使用最新版的ODBC Driver 17 for SQL Server(而非旧版的SQL Server Native Client),在ODBC数据源配置的「高级」选项中,开启「使用DateTime2」参数(部分版本需手动添加该键值对,值设为
1)。 - 重新链接表:删除原有链接表,用新配置的ODBC数据源重新链接。此时Access会自动将SQL Server的DateTime2(0)字段识别为本地Date/Time类型,无需额外转换。
- 验证数据读写:直接在Access里对链接表的日期字段进行增删改查测试,操作逻辑和本地Date/Time字段完全一致,不用修改原有程序代码。
备选方案(若ODBC配置无效)
如果上述方法不生效,可以在SQL Server端创建视图,将DateTime2(0)字段转换为DateTime类型:
CREATE VIEW vw_YourTable AS SELECT Id, CAST(YourDateTime2Field AS DATETIME) AS YourDateTimeField, -- 其他字段 FROM YourTable
然后链接这个视图到Access,Access会将转换后的字段识别为Date/Time类型,程序可以直接使用。这种方式无需修改Access端代码,仅需在SQL Server端做一层映射。
注意:DateTime类型的精度是3.33毫秒,DateTime2(0)是秒级精度,转换后不会丢失秒级及以上的信息,完全满足大多数业务场景。
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

