我正在使用FireDAC和SQLite3在Delphi中处理一个简单的数据库应用程序。每当我将新记录插入数据库时,表单上显示的日期格式始终采用yyyy-mm-dd
格式,一旦我关闭并重新打开应用程序,格式将更改为m/d/yyyy
,即DATE
格式我期待并希望始终显示而不关闭并重新打开我的应用程序。
FireDAC连接的定义参数和选项均为默认值。在SQLite3数据库中保存日期的字段的DataType集设置为Qry.SQL.Text := 'INSERT INTO employees (HireDate) VALUES (:HiredOn)';
Qry.ParamByName('HiredOn').AsDate := DateTimePicker1.Date;
Qry.ExecSQL;
Qry.Open('SELECT * FROM employees');
。最后,我用来插入记录的代码如下。
{{1}}
任何帮助都将不胜感激。
答案 0 :(得分:1)
确保底层BindingSource / List / Adapter中日期字段的任何格式设置都与表单/网格字段的格式设置相匹配。可能是该字段的底层绑定格式覆盖了表单/网格字段的新设置。
答案 1 :(得分:1)
将表单字段上的格式/显示设置为“m / d / yyyy”,并且为了更好的衡量,*也可以通过InitializeGrid
事件处理程序中的代码执行此操作
答案 2 :(得分:0)
当表单字段上的日期格式与SQLite3中的日期格式不匹配时,b / c会发生这种情况,即" yyyy-mm-dd"。因此,您需要在表单字段上设置格式/显示以匹配该格式。
答案 3 :(得分:0)
使用DateUtils ......
DateUtils.DateOf(DateTimePicker1.Date);
答案 4 :(得分:0)
尝试
FormatDateTime('dd / mm / yyyy',DateTimePicker1.Date);