又是Access时间查询问题,有人遇到过吗?

skywalk2004 2004-10-26 11:45:38
有一个表(TmpTable) 结构如下
ID WorkTime
1 04-10-21 13:12:10
2 04-10-21 13:30:20
3 04-10-21 14:12:05
4 04-10-21 15:12:12
5 04-10-21 16:14:14
我想查询 04-10-21 13:30:00 以后的记录 如 我在AdoQuery中的Sql是这样写的
AdoQuery.Sql.Add('select * from TmpTable where WorkTime>#'+DataTimeToStr(指定的时间)+'#');
AdoQuery.Open 执行错误
查询日期 没问题 where WorkTime>#2004-10-21# 就是在查询具体时间的时候 通过不了
请各位大虾指教
...全文
141 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
WGYKING 2004-10-30
  • 打赏
  • 举报
回复
如果成功就结贴啦
嘻嘻~~
pdbird 2004-10-27
  • 打赏
  • 举报
回复
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'SELECT * FROM table1 WHERE DateTime > :DateTimeStr';
ADOQuery1.Parameters.ParamValues['DateTimeStr'] := StrToDateTime('2004-10-27 3:53:30');
ADOQuery1.Open;
fansnaf 2004-10-27
  • 打赏
  • 举报
回复
access的日期前后要加上#即可.
jinjazz 2004-10-27
  • 打赏
  • 举报
回复
AdoQuery.Sql.Add('select * from TmpTable where WorkTime>cdate('''+DataTimeToStr(指定的时间)+''')');
jinjazz 2004-10-27
  • 打赏
  • 举报
回复
SELECT * from aa
where sj>cdate('2004-10-21 10:00:00')
qizhanfeng 2004-10-27
  • 打赏
  • 举报
回复
要将3:53:30转换为3::53::30
delphi认为冒号后面是参数定义
WGYKING 2004-10-27
  • 打赏
  • 举报
回复
var
SQLStr: String;
begin
ADOQuery1.Close;
SQLStr := 'SELECT * FROM table1 WHERE DateTime > ';
SQLStr := SQLStr + '#2004-10-27 3::53::30#';
ADOQuery1.SQL.Text := SQLStr;
ADOQuery1.Open;
end;

要将3:53:30转换为3::53::30
否则将被DELPHI认为是参数[:53:30#]
WGYKING 2004-10-27
  • 打赏
  • 举报
回复
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'SELECT * FROM table1 WHERE DateTime > :DateTimeStr';
ADOQuery1.Parameters.ParamValues['DateTimeStr'] := StrToDateTime('2004-10-27 3:53:30');
ADOQuery1.Open;

DELPHI自动处理为合适的格式
skywalk2004 2004-10-27
  • 打赏
  • 举报
回复
恩 ,一语惊醒梦中人~ 哈 记起:的作用拉 谢谢 修罗是谁?!, glacier
人雅的标记--落寞刺客和老巢的方法 我实验一下 看看
谢谢拉
skywang0810 2004-10-27
  • 打赏
  • 举报
回复
select * from Table1 where WorkTime>#2004-10-21 12.00.00#
用12.00.00而不用12:00:00

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧