請教各位:下面的代碼執行會出現"在應為數值之處出現非數值字元",但是如果把
SQL語句"INPUT"後面的一部份關於日期時間的去掉後,一切都正常了,是什麼原因呢?
close;
sql.clear;
sql.Add('select distinct SERIAL_NUMBER from sfism6.R_WIP_LOG_T where GROUP_NAME=''INPUT'' and IN_STATION_TIME between to_date(''' + datetimetostr(dtp2.datetime) + ''', ''YYYY/MM/DD HH24:MI:SS'') and to_date('''+datetimetostr(dtp1.datetime)+''', ''YYYY/MM/DD HH24:MI:SS'')');
open;
edit4.text:=inttostr(dm.adoqrydata3.recordcount);
SQL語句"INPUT"後面的一部份關於日期時間的去掉後,一切都正常了,是什麼原因呢?
close;
sql.clear;
sql.Add('select distinct SERIAL_NUMBER from sfism6.R_WIP_LOG_T where GROUP_NAME=''INPUT'' and IN_STATION_TIME between to_date(''' + datetimetostr(dtp2.datetime) + ''', ''YYYY/MM/DD HH24:MI:SS'') and to_date('''+datetimetostr(dtp1.datetime)+''', ''YYYY/MM/DD HH24:MI:SS'')');
open;
edit4.text:=inttostr(dm.adoqrydata3.recordcount);
如果是oracle的话,to_date函数可以进行转换,如果是sql server的话,得采用convert进行转换,还有,你在delphi中datetime转换为string应该采用 dxhdxh(anyduan) 所说的formatdatetime('yyyy-mm-dd hh:nn:ss',dtp1.datetime)来进行转换,否则问题多多!!!