我用ADOQuery连接access数据库db_station表
字段名称为'历史沿革时间' 字段格式为txt 字段内容 如 195101-195807
现在我想查询当日期为如195203时的记录
怎样实现,分不够可以加
字段名称为'历史沿革时间' 字段格式为txt 字段内容 如 195101-195807
现在我想查询当日期为如195203时的记录
怎样实现,分不够可以加
解决方案 »
- Delphi程序员如何找到高薪的工作?
- 已解决问题求一个分析,关于查询及取特定字段值的
- 判断DBGrid控件的某个单元格输入的数据是否有效,该用哪个事件好?
- 如何向注册表中写入二进制数值。
- Delphi函数查询器
- 共享一套老版本天心ERP源码
- 我是菜鸟,想和大家交朋友!我真的是刚开始学Delphi!
- 报表预览老是报EAccessViolatin 访问地址的错误?
- 哪儿有kylix2下载?哪儿有盟军2下载?
- 如何在delphi中显示ado中选择数据源的链接属性对话框(data link properties)
- 请教一下,rz的groupbar控件的右键菜单?
- 请教下,TSpTBXToolbar控件是哪个套件里的?
因此,你的'历史沿革时间'定义本身就有问题。
如果是刚刚开发,建议你重新定义表结构,否则,以后遇到的问题可能使你万劫不复!
如果正在使用,没办法更改字段了。那么:
你可以先拆分195101-195807,然后正常查找就可以了。
select * from
(select *, subString(历史沿革时间, 1, 6) as 开始时间,
subString(历史沿革时间, 8, 13) as 结束时间
from db_station)
where 结束时间 <= '195203'
-- Access中不能用substring,要用mid, 下面的已经过测试adoquery1.sql.text:= 'select * from [db_station] where mid([历史沿革时间],1,6) < ''195301'' and mid([历史沿革时间],8,6) > ''195301''';adoquery1.sql.text:= 'select * from [db_station] where mid([历史沿革时间],1,6) < ''195301'' and mid([历史沿革时间],8,6) > ''195301''';
trim(edit1.text)+''' and mid([历史沿革时间],8,6) > '''+
trim(edit1.text)+'''';