一个日期查询的问题
寒雪叔叔 2006-02-21 03:44:06 我的程序片断是这样的:
strStart := '#2005-12-1 00::00::00#';
strEnd := '#2005-12-10 23::59::59#';
strSql := 'select * from PrintSave where printtime between ' + strStart + ' and ' + strEnd;
queryPrintSave.SQL.Clear;
queryPrintSave.SQL.Text := strSql;
queryPrintSave.Open(); //出错!!
出错信息是: Select 字句中包含一个保留字、拼写错误或丢失参数或标点符号不正确。
运行时我看到strSql的值是:
select * from PrintSave where printtime between #2005-12-1 00::00::00# and #2005-12-10 23::59::59#
错在哪里,我真是搞不明白了, 在SQL资源管理器里面运行(把冒号改成单冒号)时一切正常
然后我又用了另一种参数的办法:
strStart := '#2005-12-1 00:00:00#';
strEnd := '#2005-12-10 23:59:59#';
strSql := 'select * from PrintSave where printtime between :p1 and :p2'
queryPrintSave.SQL.Clear;
queryPrintSave.SQL.Text := strSql;
queryPrintSave.Parameters.ParamByName('p1').Value := strStart;
queryPrintSave.Parameters.ParamByName('p2').Value := strEnd;
queryPrintSave.Open; //出错!!
这次出错的提示与上次的一模一样。
问题出在哪?