网游之巅峰第103章:用Delphi如何写这个SQL语句?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 18:34:34
我在用Delphi做一系统,想把Datetimepicker控件的时间保存到数据库里,SQL语句为:
SQL.Text:='update person_info set Birthday="'+ Timer.Date + '"'
但是出现如下错误:
[Error] mainU.pas(437): Incompatible types: 'String' and 'TDate'
其中Birthday是数据库里一字段,设为时间短时间类型;Timer是一Datetimepicker控件名,我现急须解决,哪位高手快帮帮我啊,多谢了!!!
哦对了,我差点忘了说明update,我不是把数据插入数据库,数据库里的时间能读取出来,但我改变时间后,要把改变的时间保存到数据库里,不知道怎么写SQL语句。

因为数据类型不一致,所以当然保存不进去了。我想了这样的一个办法,看能不能帮到你
(1)首先,我是用adoquery1连接数据库表的。假定这一字段在表中的第二列
(2)然后 这样写,保证在这之前adoquery1是开着的。
adoquery1.edit;
adoquery1.Fields[1].AsDateTime:=strtodate(datetostr(Timer.Date));
adoquery1.Post;
解释:strtodate(datetostr(Timer.Date));
这一格式是为了把时间格式转为真正的date的只有日期的格式。这是Datetimepicker这个控件本身所带来的麻烦。不用太在意。

这是数据的类型不一致,这样写:
SQL.Text:='update person_info set Birthday="'+ FormatDateTime('yyyy-mm-dd',Timer.Date) + '"'