hur.cn - 华软网

 热门搜索

帮忙查找错误,关于查找一段时期内的数据

  作者:未知    来源:网络    更新时间:2018/1/1
pb9.0 + sqlserver 2000

s_time  是smalldatetime类型的

string ls_start,ls_end,wheresql,newsql
ls_start=string(em_1.text)
ls_end=string(em_2.text)

wheresql="where cast(s_time as varchar(20)) >= '"+ls_start+"'and cast(s_time as varchar(20)) <='"+ls_end+"'"
         
newsql=ls_oldsql + wheresql

dw_1.setsqlselect(newsql)

dw_1.retrieve()

应该是wheresql的错误。
各位大虾给出比较好点的语句,谢过了!
------华软网友回答------
为什么要把select语句写在程序里呢,写在datawindow的sql里不好吗?用两个变量@startdate,@enddate,程序中只需要给变量负值和retrieve

------华软网友回复------
把ls_start、ls_end转化成datetime类型
    datetime ls_start,ls_end
    ls_start=datetime(date(em_1.text),00:00:00)
    ls_end=datetime(date(em_2.text),00:00:00)
 然后 where s_time>=ls_start and s_time<ls_end; 应该就可以了。



------华软网友回复------
date ld_start
date ld_end

datetime ldt_start
datetime ldt_end

ld_start = Date(em_1.text)
ld_end   = Date(em_2.text)

ldt_start = DateTime(ld_start,Time(00:00:00))
ldt_end   = DateTime(ld_start,Time(23:59:59))

数据窗口SQL语法

select ....
  from table
 where pro_date between :start
                and     :end

并设置retrieve参数

pbscript :
dwcontrol.retrieve(ldt_start,ldt_end)
-------------------------------------------
字符型的就这样:

select ....
  from table
 where datetime(pro_date) between :start
                and     :end

------华软网友回复------
wheresql前是不是少了一个空格:
wheresql="    where cast(s_time as varchar(20)) >= '"+ls_start+"'and cast(s_time as varchar(20)) <='"+ls_end+"'"
`
------华软网友回复------
TO:ghostagain(疯子)不是少空格的原因。
TO:princelily(百合)数据窗口中定义的:start和:end和我在程序中定义的ldt_start,ldt_end有什么联系呢?      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。