我使用此代码:
DateTimePicker1.Date := SQLQuery1.FieldByName('birthday').Value;
但它给了我一条错误信息:
无法将类型(UnicodeString)的变体转换为类型(Double)。
我也试过这段代码:
DateTimePicker1.Date := VarToDateTime(SQLQuery1.FieldByName('birthday').Value);
不幸的是它给了我一条错误信息:
无法将类型(UnicodeString)的变体转换为类型(日期)
注意:我正在使用SQLite数据库。 “生日”字段的数据类型为DATE。
先谢谢了!
答案 0 :(得分:0)
如果 SQLQuery1.FieldByName('birthday')的值不是 NULL ,此代码实际上可以正常工作:
DateTimePicker1.Date := VarToDateTime(SQLQuery1.FieldByName('birthday').Value);
先生。 David Heffman的评论帮助我意识到,当生日字段(DATE数据类型)以 NULL 值查询时,它将返回一条错误消息:
无法将类型(UnicodeString)的变体转换为类型(日期)。
因此,我设法解决了我的问题:
if not SQLQuery1.FieldByName('birthday').IsNull then
DateTimePicker1.Date := VarToDateTime(SQLQuery1.FieldByName('birthday').Value);