如何用时间段来检索数据

smqkf1208 2007-05-21 07:07:23
想检索一个时间段内的数据。
我用了sql select风格。定义了两个类型是datetime型的参数starttime 和endtime
然后where条件是这样的callstarttime>= :starttime and callendtime <=endtime
然后在clicked中写入如下代码。
datetime starttime,endtime
string sql
starttime=datetime(sle_1.text)
endtime=datetime(sle_2.text)
sql=' SELECT dbo.EVENT.EVENT_GUID,dbo.EVENT.CALLSTARTTIME, dbo.EVENT.CALLENDTIME FROM dbo.EVENT WHERE ( dbo.EVENT.CALLSTARTTIME >= :starttime ) AND ( dbo.EVENT.CALLENDTIME <= :endtime ) ;'
dw_3.settransobject( sqlca)
dw_3.retrieve( sql)
结果。。。没有什么结果。窗口里没有数据。。不怎么道为什么。大虾帮帮我改一下。换个别的方法也行。只要能出数据怎么样都行。。谢谢!!!

...全文
350 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
关注 接分
jimlydukai 2007-05-25
  • 打赏
  • 举报
回复
你在datetime函数中的日期后面加上一个时间如DateTime(ldt_date,ldt_time),试试,可以要是那样出来的datetime类型中的数据是1900-1-1。你试一下吧!
ajyang 2007-05-23
  • 打赏
  • 举报
回复
怎么不结贴?
smqkf1208 2007-05-23
  • 打赏
  • 举报
回复
不要那么势利。现在没有结贴并不能说明我以后不结贴。贴是一定要结的。我没有回复那是我一直在调试。一直在找问题。没有一直关注这个贴子。
doodle 2007-05-23
  • 打赏
  • 举报
回复
大家都在帮你 回答那么多 你也没一个回复 谁知道为什么没解决?!
smqkf1208 2007-05-23
  • 打赏
  • 举报
回复
问题没有解决,你说要不要结贴?
meditatorzhang 2007-05-22
  • 打赏
  • 举报
回复
用between and 试一下。

PB8。0 DB中不支持datetime
doodle 2007-05-22
  • 打赏
  • 举报
回复
没看明白 如果你的数据窗口已经定义了retrieve参数 那还setsqlselect干什么?
dw_3.settransobject( sqlca)
dw_3.retrieve(starttime,endtime)

如果没定义retrieve参数 那么可以
sql=' SELECT dbo.EVENT.EVENT_GUID,dbo.EVENT.CALLSTARTTIME, dbo.EVENT.CALLENDTIME FROM dbo.EVENT WHERE ( dbo.EVENT.CALLSTARTTIME >= '+string(starttime) +') AND ( dbo.EVENT.CALLENDTIME <= '+string(endtime)+')'
dw_3.setsqlselect(sql)
dw_3.settransobject( sqlca)
dw_3.retrieve()

ajyang 2007-05-22
  • 打赏
  • 举报
回复
我想应该是数据窗口的问题
你定义的是一个有查询条件的数据窗口(sql select),
如果在代码中检索的时候再加上sql条件,
系统在编译时就错认为查询条件有冲突。
你重新生成一个datawindow,选择(quick select)就行了。
FuYongHao 2007-05-21
  • 打赏
  • 举报
回复
//datetime starttime,endtime
string ls_starttime,ls_endtime
ls_starttime=sle_1.text
ls_endttime=sle_2.text

sql=" SELECT dbo.EVENT.EVENT_GUID,dbo.EVENT.CALLSTARTTIME, dbo.EVENT.CALLENDTIME FROM dbo.EVENT WHERE dbo.EVENT.CALLSTARTTIMEBETWEEN '"+:ls_starttime+"'AND '"+:ls_endtime+""
dw_3.SetSQLselect(sql) //
dw_3.retrieve()
FuYongHao 2007-05-21
  • 打赏
  • 举报
回复
把两个时间参数改为字符型
//datetime starttime,endtime
string ls_starttime,ls_endtime
ls_starttime=sle_1.text
ls_endttime=sle_2.text

sql=" SELECT dbo.EVENT.EVENT_GUID,dbo.EVENT.CALLSTARTTIME, dbo.EVENT.CALLENDTIME FROM dbo.EVENT WHERE dbo.EVENT.CALLSTARTTIME BETWEEN '"+:ls_starttime+"' AND '"+:ls_endtime+""
dw_3.SetselectSQL(sql)
dw_3.retrieve()
lllyyymmm 2007-05-21
  • 打赏
  • 举报
回复
把两个时间参数改为字符型,再试一下这个
sql="SELECT dbo.EVENT.EVENT_GUID,dbo.EVENT.CALLSTARTTIME, dbo.EVENT.CALLENDTIME FROM dbo.EVENT WHERE ( dbo.EVENT.CALLSTARTTIME >= '"+starttime+"' ) AND ( dbo.EVENT.CALLENDTIME <= '"+endtime+"' );"
dw_3.settransobject( sqlca)
dw_3.retrieve( sql)

609

社区成员

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

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