今天在写一个代码的时候,用了如下代码:
sSql:= 'select * from Aip1 where ';
sSql :=sSql +'time >= '+#39+FormatDatetime('YYYY-MM-DD 00:00:00',wwDBDateTimePicker1.DateTime)+#39;
sSql :=sSql +' and time <'+#39+FormatDatetime('YYYY-MM-DD 23:00:00',wwDBDateTimePicker1.DateTime)+#39;
adoQ.Close;
adoQ.SQL.Clear;
adoQ.SQL.Text :=sSql;
adoQ.Open;
发现老提示"标准表达式中数据类型不匹配",郁闷不以,后来终于发现这样的写法只适合在Sql server中,而在Access中必须按照它的写法来,就写成了下面的样子 :

在使用Delphi7开发时遇到Access数据库SQL查询错误,提示'标准表达式中数据类型不匹配'。原因是日期时间格式在SQL Server与Access中的表示方式不同。修正方法是在Access的SQL语句中,日期时间需用#号包围,时分秒间用两个冒号分隔。例如:#1999-1-1 12::12::12#。了解这些差异有助于避免类似问题。
最低0.47元/天 解锁文章
2776





