Ms access 如何从MS Access查询DB2时间戳值?
我在Access 2007中有一个链接的DB2表。字段“ROW_INSERT_TS”显示为日期/时间值,有些值如下所示(在Access中) 我试图找到所有值>=7/3/2014,其中应包括上述所有3项 我试过: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
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