急!!!数据过滤问题,请高手指教!

guiyings 2003-09-11 02:10:25
我在窗口左边放了一个cbx_1(用来检索type='系统'的所有记录)
在窗口右边放了一个按钮cb_1,用来检索某一时间段的所有记录。 开始时间在em_1中输入,结束时间在em_2中输入。em-1.text="200-1-1 12:00:00" em_2.text="2002-12-12 12:00:00"
我写语法如下:
newsql="系统"
w_1.setfilter("type like '"+newsql+"%' and (oprtime>="+string(dt1,'yyyy-mm-dd 00:00:00')+" and oprtime<="+string(dt2,'yyyy-mm-dd 00:00:00')+")")
dw_1.filter()
为何报错呀?请高手指教。
...全文
21 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
eminena 2003-09-25
  • 打赏
  • 举报
回复

w_1.setfilter("match(type,'"+newsql+"'"+" and date(oprtime)>="+"date("+parent.em_1.text+") and date(oprtime)<="+"date("+parent.em_2.text+")"
warchild 2003-09-25
  • 打赏
  • 举报
回复
up
banalman 2003-09-12
  • 打赏
  • 举报
回复
w_1.setfilter("type like '"+newsql+"%' and (oprtime>='"+string(dt1,'yyyy-mm-dd 00:00:00')+"' and oprtime<='"+string(dt2,'yyyy-mm-dd 00:00:00')+"')")

wanghan227 2003-09-11
  • 打赏
  • 举报
回复
在setfilter()语句中不能使用like or '%'等模糊查询.
eminena 2003-09-11
  • 打赏
  • 举报
回复
setfilter() 不能用通配符 '%'
dyzhuang 2003-09-11
  • 打赏
  • 举报
回复
单独执行dw_1.setfilter("type like '"+newsql+"%'")如何?
guiyings 2003-09-11
  • 打赏
  • 举报
回复
我单独执行下面的语句不报错:
dw_1.setfilter("oprtime>="+string(dt1,'yyyy-mm-dd 00:00:00')+" and oprtime<="+string(dt2,'yyyy-mm-dd 00:00:00')+"")
dw_1.filter()
我加一个条件,改为:
dw_1.setfilter("type like '"+newsql+"%' and (oprtime>='"+string(dt1,'yyyy-mm-dd 00:00:00')+"' and oprtime<='"+string(dt2,'yyyy-mm-dd 00:00:00')+"')")
dw_1.filter()
就报错,为何?
jdsnhan 2003-09-11
  • 打赏
  • 举报
回复
1、注意oprtime数据类型,是串还是时间。
2、注意语法,单引号不能少。
guiyings 2003-09-11
  • 打赏
  • 举报
回复
忘了说明一下。
datetime dt1,dt2
em_1.getdata(dt1)
em_2.getdata(dt2)
dyzhuang 2003-09-11
  • 打赏
  • 举报
回复
请问你的dt1、dt2的值是什么??
datetime是无法从em-1.text="200-1-1 12:00:00"得到!!
ljy607 2003-09-11
  • 打赏
  • 举报
回复
不能用like,只能用等于或者用mid()函数。
ljy607 2003-09-11
  • 打赏
  • 举报
回复
string ss

ss = "type like '"+newsql+"%' and oprtime between "+dt1+" and "+dt2
dw_1.setfilter(ss)
dw_1.filter()
eminena 2003-09-11
  • 打赏
  • 举报
回复
string ls_filter

ls_filter="type='系统'"+" and date(oprtime)>="+"date("+parent.em_1.text+") and date(oprtime)<="+"date("+parent.em_2.text+")"

w_1(ls_filter)

你可以用一个文本框看看 ls_filter的值,如果出错,好修改!
dyzhuang 2003-09-11
  • 打赏
  • 举报
回复
改string(dt2,'yyyy-mm-dd hh:mm:ss')试试
aahlian 2003-09-11
  • 打赏
  • 举报
回复
先查看一下数据窗口里有无这两个字段,名称引用是否完整;
在数据窗口里直接贴一下“filter”的内容,写具体数值,用于检测语法问题。
csdsjkk 2003-09-11
  • 打赏
  • 举报
回复
w_1.setfilter("type like '"+newsql+"%' and (oprtime>='"+string(dt1,'yyyy-mm-dd 00:00:00')+"' and oprtime<='"+string(dt2,'yyyy-mm-dd 00:00:00')+"')")
guiyings 2003-09-11
  • 打赏
  • 举报
回复
我想检索typt='系统'并且oprtime在"200-1-1 12:00:00"与="2002-12-12 12:00:00"间的记录。typt为nvarchar(100 ),oprtime为datatime(8).

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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