[使用Delphi和FireDAC从数据库读取DateTime

问题描述 投票:0回答:1

我无法使用Delphi 10.3和FireDAC从SQLite数据库读取日期时间。作为最简单的示例,我使用sqlite创建一个示例数据库,如下所示:

.open Test.db
CREATE TABLE "TABLE1" ("Name"VarChar(16), "Time" datetime); 
INSERT INTO Table1 (Name,Time) VALUES("Fred",time('now'));

然后

select * from Table1

按预期提供弗雷德| 16:52:57。

如果我生成一个FDConnection1和FDQuery1链接到数据源和DBgrid的Delphi程序,它将显示为“ Fred”,而不是时间。 FDquery1 asstring返回的值是“”,而asfloat是0。如果我尝试使用FireDAC Explorer工具查看数据库,它也无法读取时间值,但是我注意到它确实从某些示例数据库中读取了日期时间,因此显然可以正常工作。

谁能告诉我我所缺少的。谢谢

database sqlite delphi firedac
1个回答
0
投票
procedure TForm2.btnInsertRowClick(Sender: TObject); const sInsertRow = ' INSERT INTO Table1 (Name,time) VALUES(''Fred'',datetime(''now''))'; begin FDConnection1.ExecSql(sInsertRow); end;

Btw,总的来说,使用参数化的INSERT语句比上面的文字语句要好,但是在这里这并不实际,因为您要插入Sqlite返回的now值而不是Delphi的now函数。 。

© www.soinside.com 2019 - 2024. All rights reserved.