** 特急问题:关于日期时间 **
D6+ACCESS数据库
CurDate为短日期型:如:2003-2-30
CurTime为长时间型:如:10:10:00
可运行到下面过程时,出现错误:(无效的日期时间格式(NULL))
怎么回事?救命。
procedure TFrmMain.AddRecToDB(sCardID: string; TimeStage: Integer);
begin
with DM.CheckInfo do
begin
SQL.Text := 'INSERT INTO Empl_Check(User_ID,CurDate,CurTime,Type) '
+ 'VALUES(:ValID, :ValDate, :ValTime, :ValType)';
ParambyName('ValID').DataType := ftString;
ParamByName('ValDate').DataType := ftDate;
ParamByName('ValTime').DataType := ftTime;
ParamByName('ValType').DataType := ftInteger;
ParamByName('ValID').AsString := sCardID;
ParamByName('ValDate').AsDate := date();
ParamByName('ValTime').AsTime := Time();
ParamByName('ValType').AsInteger := TimeStage;
ExecSQL;
end;
end;
问题点数:50、回复次数:6Top
1 楼zhboy(孔方兄)回复于 2003-03-01 11:51:35 得分 20
ParambyName('ValID').DataType := ftString;
ParamByName('ValID').AsString := sCardID;
不对,
首先为了适应你的‘2003-2-30’要定义LongDateFormat:= 'yyyy-m-d';
ParamByName('ValID').Value := StrToDate(sCardID);
Top
2 楼zhboy(孔方兄)回复于 2003-03-01 11:53:41 得分 0
把参数类型定义的部分去掉,Top
3 楼qiume(好好回贴,天天胖胖)回复于 2003-03-01 12:02:36 得分 15
日期转换 :CONVERT(varchar(10), GETDATE(),120)
Top
4 楼yl_588888()回复于 2003-03-01 12:27:23 得分 15
ParamByName('ValDate').Asstring := datetimetostring(date());
ParamByName('ValTime').Asstring := datetimetostring(Time());Top
5 楼xuchunqiang(伤心的土八路)回复于 2003-03-03 13:14:57 得分 0
请问zhboy(孔方兄):为什么把类型定义去掉?我做的时候,有时可以,有时又说类型未知出错。上次也在论坛上问了这个问题,没有人给个满意的答复。Top
6 楼xuchunqiang(伤心的土八路)回复于 2003-03-05 19:39:22 得分 0
呵呵,我的问题是出在了数据库里面把VALTYPE误设为string型的,麻烦大家了,不好意思。
顺便再问一下:
由用户在DATETIMEPICKER中选择两个天数,然后从数据库中得到在这两个日期之间的所有记录。应怎么办呢?
有哪位高手对时间日期这方面弄得比较清楚的,望不吝赐教,我都被搞晕了。
Top




