delphi里查询数据库结果是空的,实际应该有数据
qryNumber.SQL.Add('selectIntraLabelNo,TeamNumberfromOrderRec');qryNumber.SQL.Add('whe...
qryNumber.SQL.Add('select IntraLabelNo,TeamNumber from OrderRec ');
qryNumber.SQL.Add('where (PrintDT between :P0 and dateadd(second,1,:P0)) and printed=1 and PrintNo=:P1');
qryNumber.Parameters.ParamByName('P0').Value:=FormatDateTime('yyyy-mm-dd hh:nn:ss',time);
这几句有什么问题吗,为什么查到的结果是空的? 展开
qryNumber.SQL.Add('where (PrintDT between :P0 and dateadd(second,1,:P0)) and printed=1 and PrintNo=:P1');
qryNumber.Parameters.ParamByName('P0').Value:=FormatDateTime('yyyy-mm-dd hh:nn:ss',time);
这几句有什么问题吗,为什么查到的结果是空的? 展开
2个回答
展开全部
不同的数据库对时间的表述格式不同,你也没交代用的什么数据库:
Access :DATEADD('second', 1, #2013-01-04#)
MS SQL:DATEADD(second, 1, '2013-01-04')
你的时间参数P0也要改成下面的样子:
qryNumber.Parameters.ParamByName('P0').Value := '#' + FormatDateTime('yyyy-mm-dd hh:nn:ss',time) + '#'
qryNumber.Parameters.ParamByName('P0').Value := '''' + FormatDateTime('yyyy-mm-dd hh:nn:ss',time) + ''''
Access :DATEADD('second', 1, #2013-01-04#)
MS SQL:DATEADD(second, 1, '2013-01-04')
你的时间参数P0也要改成下面的样子:
qryNumber.Parameters.ParamByName('P0').Value := '#' + FormatDateTime('yyyy-mm-dd hh:nn:ss',time) + '#'
qryNumber.Parameters.ParamByName('P0').Value := '''' + FormatDateTime('yyyy-mm-dd hh:nn:ss',time) + ''''
更多追问追答
追问
是SQL Server,你的方法试了一下,报错了
追答
先别提报不报错,你先告诉我你用的是什么数据库?!!!说了半天我白说了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询