gpt4 book ai didi

mysql - DateTime 列在链接到 MySQL 后端的 MS Access 表中不起作用

转载 作者:行者123 更新时间:2023-11-30 22:06:41 25 4
gpt4 key购买 nike

我有一个带有 Microsoft Access (2016) 前端的 MySQL 数据库。我在 Access 数据库中有许多包含 DateTime 列的链接表。

我已经在我的家用 PC 和笔记本电脑上成功运行了这个 DB 很长一段时间,但最近不得不更换我的笔记本电脑,所以刚刚安装(很好地复制到)一个新笔记本电脑上。在这个新实例上,我的日期过滤器都不起作用。在调查中,我注意到了非常奇怪的行为:如果我打开其中一个链接表,单击其中一个日期列中的任何值并选择仅过滤该值的选项,则不会显示任何内容。例如,如果我写一个查询来过滤

WHERE [Date]=#01/01/2017# 

什么都没有返回。如果我将其重写为

WHERE CDate([Date])=#01/01/2017# 

它返回正确的记录(顺便说一句,我选择这个日期是为了证明它不是英国/美国日期格式问题)。

该列在前端的链接表中正确显示为 DateTime 列,如果我编写查询来显示所述列的年、月和日值,它会返回正确的值。

我正在运行完全更新的 Windows 10 家庭版,在两台机器上都装有 Access 2016 MSO 16.0.7571.7063 和 MySQL Connector/ODBC 5.3.6。我在 Access 中找不到其他设置在两台机器之间存在差异,据我所知,我的区域设置和语言设置在两台机器上似乎也相同。

我尝试将 MySQL 列转换为 Date 而不是 DateTime,但没有任何区别。我也在新笔记本上刷新,删除,重新链接版本上的表格,甚至修复了Office安装,仍然没有快乐。

顺便说一句,如果我将链接表复制到本地表,它工作正常。

我不知道是什么原因造成的。由于其他一切似乎都一样,是否有可能我的新笔记本电脑上的某些注册表设置与我的其他 PC 不同?

编辑:我刚刚在笔记本上尝试了以下子句

WHERE [Date]>=#01/01/2017# And [Date]<=#31/12/2016#

它返回所有记录!

进一步编辑:我还尝试运行以下查询

Select count([date]) from daysworked where [date]>=#dd/mm/yyyy#

在某些 VBA 中,用于一系列日期。只要 dd 介于 1 和 20(含)之间,它就会返回 1753(所有行)。当 dd 大于或等于 21 时,它返回零,无论 mm 和 yyyy 的值如何。在我看来,这可能会将 dd 解释为世纪值。由于 MySQL 日期的格式为 yyyy-mm-dd,我想这可能有某种意义,但我希望 ODBC 连接器能够处理从 Access 到 MySQL 格式的转换。它显然在我运行过的所有其他机器上都表现良好。

最佳答案

你有时间部分吗?这将返回什么:

WHERE [Date] Between #01/01/2017# And #01/02/2017# 

或者尝试在两台机器上显示数值并比较:

NumDate: CDbl([Date])

或者你真的有文本:

WHERE [Date] = '01/01/2017' 

关于mysql - DateTime 列在链接到 MySQL 后端的 MS Access 表中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41454177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com