gpt4 book ai didi

delphi - 从 MS-Access DATETIME 列中选择日期查询

转载 作者:行者123 更新时间:2023-12-01 23:39:35 27 4
gpt4 key购买 nike

我目前正在使用“MS Access”数据库开发“Delphi XE4”。我使用的工具是 ADOCommand、ADOQuery、ADOConnection、ADOTable 和 Datasource

在我的用户界面项目中,用户正在选择日期范围,并使用该日期从数据库中选择记录。

但问题是,我的数据库列采用 DATETIME 格式(2015 年 5 月 21 日 02:30:00 PM),并且用户仅选择一个日期,例如 2015 年 5 月 21 日。

现在如何仅使用 DATE 从数据库中选择记录。

请注意,例如,我已经尝试触发选择查询,

ADOQuery.SQL.ADD('SELECT * From Tablename') ;
ADOQuery.SQL.ADD('WHERE Cast(DateTimeField As DATE) = #5/21/2015# ');

这也是

ADOQuery.SQL.ADD('SELECT * From Tablename') ;
ADOQuery.SQL.ADD('WHERE Convert(DATE,DateTimeField, 101) = #5/21/2015# ');

但这会导致错误“表达式中未定义函数‘Cast/Convert’”

还有其他办法吗?

有人可以建议我如何通过使用选择查询从“DATETIME 字段”中获取日期来获取记录吗?

最佳答案

欢迎来到 SO。

您不应该尝试解析自己的日期,而应该使用参数化查询。

所以

ADOQuery.SQL.ADD('SELECT * From Tablename') ;
ADOQuery.SQL.ADD('WHERE Convert(DATE,DateTimeField, 101) = #5/21/2015# ');

应该改为

ADOQuery.SQL.ADD('SELECT * From Tablename') ;
ADOQuery.SQL.ADD('WHERE DATE = :DateValue');

然后,当您调用查询时,请执行以下操作:

  ADOQuery1.Close;
ADOQuery1.Parameters.ParamByName('DateValue').Value := Now;
ADOQuery1.Open;

SQL 引擎可以解决这个问题。尝试一下,如果你不能让它工作,我会为你做一个完整的例子

关于delphi - 从 MS-Access DATETIME 列中选择日期查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30408962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com