如何实现时间段查询(日期) 小弟是新手 请指教 (在线等待)

d1022 2003-05-19 04:32:40
同上
...全文
8 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
d1022 2003-05-21
help
回复
d1022 2003-05-21
代码如下
string ls_filter
date date1,date2
date1=date(sle_start.text)
date2=date(sle_end.text)
ls_filter =' string(col_date,"yyyy-mm-dd") >="'+&
string(date1,'yyyy-mm-dd')+'" and string(col_date,"yyyy-mm-dd") <="'&
+string(date2,'yyyy-mm-dd')+'"'
dw_1.setfilter(ls_filter)
dw_1.filter()
dw_1.sort()

为什么运行的时候 总是说 invalid argument to function
这是为什么? 请帮忙
回复
d1022 2003-05-20
我是用quick select 建的,不使用sql select 那样怎么实现?我上面的代码由问题么?
回复
guojing590 2003-05-20
在建立数据窗口时,在select画板的where子窗口设计两个参数:起始时间ld_begin和
终止时间ld_end : 例:
"student"."birthday">=:ld_begin and
"student"."birthday"<=:ld_end


然后在窗口的代码中:
date ld_1,ld_2
ld_1=date(sle_1.text)
ld_2=date(sle_2.text)
settransobject(sqlca);
retrieve(ld_1,ld_2);
回复
逢桥夜泊 2003-05-20
retrieve()和setfilter都可实现吧!retrieve ()在datasource 里设置一个参数当然是与实间有关那个字段了,然后在程序中去参数的值
回复
d1022 2003-05-20
怎么没人回答亚
回复
d1022 2003-05-20
看不懂大哥写的 我用的是asa 上面的代码是对Oracle吧 请给位大哥帮忙 毕业设计马上就要交了!分不够再加!
回复
bomber2001 2003-05-20
设置arguments

用retrieve(*,*)^_^
回复
pei322 2003-05-20
String ls_oldsql,ls_newsql,ls_where
ls_oldsql= dw_1.getsqlselect()
ls_where = "datecolummn=date('"+String(t,'yyyy-mm-dd')+"')"
ls_newsql = ls_oldsql+ls_where
dw_1.setsqlselect(ls_newsql)
dw_1.retrieve()
回复
d1022 2003-05-19
我是这样写的:

date ld_rq,ld_zzrq,ld_start,ld_end
string lsql,ls
ld_rq=dw_1.object.rq()
ld_start=date(sle_start.text)
ld_end=date(sle_end.text)
ls=dw_1.getsqlselect()
lsql=ls+'where to_char(ld_rq,'yyyy/mm/dd')>=:ls_begin'
+'and to_char(ld_rq,'yyyy/mm/dd')<=:ls_end'
dw_1.setsqlselect(lsql)
dw_1.retrieve()

提示错误:syntax error,指示在lsql=ls+'where to_char(ld_rq,'yyyy/mm/dd')>=:ls_begin'+'and to_char(ld_rq,'yyyy/mm/dd')<=:ls_end'这一行,请问是什么问题?

回复
blackcorbie 2003-05-19
date ldt_czrq,ldt_czrq1
string ls_date
ldt_czrq = dw_1.object.rq[1]
ldt_czrq1 = dw_1.object.rq_1[1]

if isnull(ldt_czrq) and isnull(ldt_czrq1) then
ls_date = " 5 = 5 "
else
ls_date =" czrq between date('" + string(ldt_czrq,'yyyy-mm-dd') + "')" + " and date('" + string(ldt_czrq1,'yyyy-mm-dd') + "') "
end if

回复
nbnasom 2003-05-19
参数:datatime ldt1,ldt2


select ..... from ..... where ...... and 字段 between :ldt1 and :ldt2
回复
joss 2003-05-19
1、使用数据窗口的retrieve(参数1、参数2...)功能来实现
2、使用dw_name.setfilter("表达式")
dw_name.filter
的方式来实现要求
3、动态改变数据窗口sql语句!

其中1、2比较简单就能实现!
回复
kw123 2003-05-19
不好意思
你把lsql准确的写一遍。我写的有些失误
回复
kw123 2003-05-19
接上birdslin的操作
ls=dw_1.getsqlselect()
lsql=ls+'where to_char(fld_date,'yyyy/mm/dd')>=:ls_begin'
+'and to_char(fld_date,'yyyy/mm/dd')<=:ls_end'
dw_1.setsqlselect(lssql)
dw_1.retrieve()

直接的dw_1.retrive()不用过滤参数


回复
d1022 2003-05-19
然后怎么在dw中显示出来呢用retrieve()中的参数怎么设置 还是用过滤函数?
回复
birdslin 2003-05-19
ls_begin=em_1.text
ls_end=em_2.text
select * from table
where to_char(fld_date,'yyyy/mm/dd')>=:ls_begin
and to_char(fld_date,'yyyy/mm/dd')<=:ls_end;

回复
kw123 2003-05-19
select * from 表名 where 0dt>=起始时间 and dt=<终止时间
其中起始时间和终止时间是我们所要查询的时间段
回复
相关推荐
发帖
PowerBuilder
创建于2007-09-28

866

社区成员

PowerBuilder 相关问题讨论
申请成为版主
帖子事件
创建了帖子
2003-05-19 04:32
社区公告
暂无公告