delphi 取时间 出现1900/1/1 请问如何解决啊?

ADOQuery1.SQL.Add('insert into kq(编号,签到时间,考勤日期,上班状态)values(');
ADOQuery1.SQL.Add(''''+EDit1.Text+''''+',');
ADOQuery1.SQL.Add(''''+FormatDateTime('hh:nn:ss',now)+''''+',');
在Edti2控件里面FormatDateTime('hh:nn:ss',now)显示的时间是正常的时:分:秒
但是在表里面就出现1900/1/1 怎么处理?

第1个回答  2012-11-15
修改一个格式
FormatDateTime('yyyy/mm/dd hh:nn:ss',now)
或把表中对应字段的类型修改为字符串类型。追问

如果改成字符串,那时间格式怎么改TimeToStr?但是我想要hh:mm:ss这个格式

追答

FormatDateTime('hh:nn:ss',now)应该是字符串格式的。

本回答被网友采纳
第2个回答  2012-11-15
FormatDateTime 只取了时分秒,没取年月日,可以加上 yyyy/mm/dd追问

如果不想要年月日怎么办?

追答

那么就忽视年月日。反正你都不在乎年月日,那还管数据库中是多少年月日干吗?
大不了,就在数据读取的时候把数据库中年月日部分无视掉,仅显示时分秒。

第3个回答  推荐于2021-01-06
你数据库里签到时间是datatime型的,1900/1/1是系统自己填的。追问

怎么能让他不填啊?

追答

datatime型的数据,日期是必须有的。

本回答被提问者采纳