如何将SQLite DATE字段转换为TDate?

时间:2015-11-09 11:28:32

标签: database sqlite delphi

我使用此代码:

DateTimePicker1.Date := SQLQuery1.FieldByName('birthday').Value;

但它给了我一条错误信息:

  

无法将类型(UnicodeString)的变体转换为类型(Double)。

我也试过这段代码:

DateTimePicker1.Date := VarToDateTime(SQLQuery1.FieldByName('birthday').Value);

不幸的是它给了我一条错误信息:

  

无法将类型(UnicodeString)的变体转换为类型(日期)

注意:我正在使用SQLite数据库。 “生日”字段的数据类型为DATE。

先谢谢了!

1 个答案:

答案 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);