Access数据库,where条件中加日期
现在又表TT,字段name,dateday(时间/日期型)。
我想在记录保存之前检查数据库中有没有相同的记录,有的话就不保存,也就是检查name 和 timeday相同时就不保存。但下面的SELECT语句老是报错。请大家帮忙看一下,谢谢!
是第二个条件(日期条件)出错了,但我不知道怎么修改。
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from TT where name='''+Edit1.Text+''' and dateday='+Datetostr(DateTimePicker1.DateTime));
ADOQuery1.Open;
if not ADOQuery1.eof then
begin
showmessage('记录重复');
exit;
[解决办法]
dateday字段是什么类型,如果是字符类型,那日期值要加引号,如果是日期类型格式,对于access数据库日期值要前后加'#'修饰符
[解决办法]
'select * from TT where name='''+Edit1.Text+''' and '# dateday #'='+Datetostr(DateTimePicker1.DateTime));
[解决办法]
恩,用#时间#
或者
format('%.10f',[datetime]),不过这样有点误差
[解决办法]
ADOQuery1.SQL.Add('select * from TT where name='''+Edit1.Text+''' and dateday=:day');
adoquery1.Parameters.ParamByName('day').Value := DateTimePicker1.DateTime
[解决办法]
ADOQuery1.SQL.Add('select * from TT where name=:name and dateday=:day');
adoquery1.Parameters.ParamByName('day').Value := DateTimePicker1.DateTime;
adoquery1.parameters.parambyname('name').value := Edit1.Text;
[解决办法]
dateday字段应该是日期类型的吧?时间那儿加个'#' 就好
ADOQuery1.SQL.Add('select * from TT where name= '+Edit1.Text+' and dateday= #'+Datetostr(DateTimePicker1.DateTime)+'#');