Ms access 如何从MS Access查询DB2时间戳值?

Ms access 如何从MS Access查询DB2时间戳值?,ms-access,db2,Ms Access,Db2,我在Access 2007中有一个链接的DB2表。字段“ROW_INSERT_TS”显示为日期/时间值,有些值如下所示(在Access中) 我试图找到所有值>=7/3/2014,其中应包括上述所有3项 我试过: WHERE (((MY_TABLE.ROW_INSERT_TS) >= '7/3/2014 0:00:00 AM')) 这将获取数据类型不匹配的错误 WHERE (((MY_TABLE.ROW_INSERT_TS) >= '7/3/2014')) 得到与上面相同的结果 W

我在Access 2007中有一个链接的DB2表。字段“ROW_INSERT_TS”显示为日期/时间值,有些值如下所示(在Access中)

我试图找到所有值>=7/3/2014,其中应包括上述所有3项

我试过:

WHERE (((MY_TABLE.ROW_INSERT_TS) >= '7/3/2014 0:00:00 AM'))
这将获取数据类型不匹配的
错误

WHERE (((MY_TABLE.ROW_INSERT_TS) >= '7/3/2014'))
得到与上面相同的结果

WHERE (((MY_TABLE.ROW_INSERT_TS) >= '2014-07-03'))
WHERE (((MY_TABLE.ROW_INSERT_TS) >= #7/3/2014 0:00:00 AM#))
得到与上面相同的结果

WHERE (((MY_TABLE.ROW_INSERT_TS) >= '2014-07-03'))
WHERE (((MY_TABLE.ROW_INSERT_TS) >= #7/3/2014 0:00:00 AM#))
获取“SQL0180N日期时间值的字符串表示形式的语法不正确”

WHERE (((MY_TABLE.ROW_INSERT_TS) >= #7/3/2014#))
得到与上面相同的结果

WHERE (((MY_TABLE.ROW_INSERT_TS) >= '2014-07-03'))
WHERE (((MY_TABLE.ROW_INSERT_TS) >= #7/3/2014 0:00:00 AM#))
我还尝试将日期格式更改为2014-07-03,但没有任何效果

我通过编辑
db2cli.ini
文件并将补丁值更改为8来了解可能的修复方法,我编辑了补丁值以包括
PATCH1=8
,但这并没有改变任何东西

我还可以尝试什么?

在MS Access中,Date()是今天没有时间,而Now()是这一分钟。在大多数情况下,MS Access将接受:

 SELECT * FROM ThisTable WHERE ThisDateField > Date() + 15

也就是说,今天+15天。

如果将CLI设置
MapTimeStampDescripte
MAPTIMESTAMPCDEFAULT
更改为
1
,那么日期和时间戳将映射到它们的
CHAR()
等价项,Access(或DB2后端)将接受这些值

然后,您将使用以下格式:

日期-
YYYY-MM-DD


时间戳-
YYYY-MM-DD hh.MM.ss.ssss

尝试以ISO格式提供完整的
时间戳
文本:
其中(((MY_TABLE.ROW_INSERT_TS)='2014-07-03-00.00.00')
@mustaccio,这导致标准表达式中的
数据类型不匹配
错误。MS Access中的日期分隔符为哈希()
#2014-07-03 00.00.00
我不确定您所在的地区,但您可能需要
#2014/07/03 00:00:00#
时间可能并不重要。无论您的情况如何,您永远不会在日期和时间之间出现冲突。如果您的表是链接的,那么获得MS Access为您构建查询应该很容易。@Remou如果我尝试
WHERE(((MY_TABLE.ROW_INSERT_TS)>=#2014-07-03 00.00.00#))
我得到
[IBM][CLI驱动程序][DB2/AIX64]SQL0180N日期时间值的字符串表示语法不正确。SQLSTATE=22007