可恶,我试过了,用convert函数仍然不行,也是说replace函数未定义,请问是什么原因?我用的是access数据库 ======================== 当然,我上面的查询语句是sql server里面的,sql server的convert函数与access中的不一样。 在access中,我用下面的查询语句能正常工作:SELECT * FROM t1 WHERE cdate(replace(timestamp,".","/"))>=#10/10/2003# And cdate(replace(timestamp,".","/"))<=#1/7/2004#;t1是测试的表,里面只有一个文本字段timestamp,里面都是些2004.6.10格式的日期文本。。楼主的查询不成功,我估计是因为由于某些原因,有些记录的timestamp字段可能是一些非法的日期文本,例如,timestamp=2004.1.6的时候,上面的语句可以正常工作,但如果由于某些原因,使timestamp=2004.18.56,那么上面的语句就会出错,因为一年不会有18个月。。同样,也不会有56天。。 至于说replace函数未定义,请检查你的office是否安装得完整。。
先用replace(字段名,'.','/')转换一下。
//
不会吧?
========================
当然,我上面的查询语句是sql server里面的,sql server的convert函数与access中的不一样。
在access中,我用下面的查询语句能正常工作:SELECT * FROM t1 WHERE cdate(replace(timestamp,".","/"))>=#10/10/2003# And cdate(replace(timestamp,".","/"))<=#1/7/2004#;t1是测试的表,里面只有一个文本字段timestamp,里面都是些2004.6.10格式的日期文本。。楼主的查询不成功,我估计是因为由于某些原因,有些记录的timestamp字段可能是一些非法的日期文本,例如,timestamp=2004.1.6的时候,上面的语句可以正常工作,但如果由于某些原因,使timestamp=2004.18.56,那么上面的语句就会出错,因为一年不会有18个月。。同样,也不会有56天。。
至于说replace函数未定义,请检查你的office是否安装得完整。。