这个sql怎么写?老手来看看

wt70121 2003-08-24 09:38:29
我的一个查询日期的sql总出错!
下面是代码:
sql.Add('select count(*) as num from c_construct');
sql.add(' where ((start_date between :s_date and :e_date) or (end_date between :s_date and :e_date))');
parameters.parambyname('s_date').value:=datetostr(dtp1.Date);
parameters.parambyname('e_date').value:=datetostr(dtp2.Date);
但是在sql中between使用中日期使用方法:between 'time1' and 'time2'
这个''怎么加啊?我试了几次都不成功,希望老手来帮忙!
...全文
54 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutian618 2003-08-24
  • 打赏
  • 举报
回复
多谢兄弟,
就靠这十分,我一个星了。
wt70121 2003-08-24
  • 打赏
  • 举报
回复
多谢各位!搞定了!我去给各位加分!是用azsoft的方法!不过大家都有份:)
zhoutian618 2003-08-24
  • 打赏
  • 举报
回复
搞错了,不好意思。

那楼上的方法可以啊。
wt70121 2003-08-24
  • 打赏
  • 举报
回复
sql.add(' where ((start_date between '+''''+:s_date+''''+' and'+ ''''+:e_date+''''+') or (end_date between '+''''+:s_date+''''+'and'+ ''''+:e_date+''''+'))')'

还是不对!老大,能给个正确的写法吗???
azsoft 2003-08-24
  • 打赏
  • 举报
回复
sql.Add('select count(*) as num from c_construct');
sql.add(' where ((start_date between '''+datetostr(dtp1.Date)+''' and '''+datetostr(dtp2.Date)+''') or (end_date between '''+datetostr(dtp1.Date)+''' and '''+datetostr(dtp2.Date)+'''))');
用这个试试。有时后参数不好用。
fyol 2003-08-24
  • 打赏
  • 举报
回复
应该四个'
fyol 2003-08-24
  • 打赏
  • 举报
回复
加‘’的时候要用
+‘’‘’other code +''''
wt70121 2003-08-24
  • 打赏
  • 举报
回复
老大!我用的是ado啊!
zhoutian618 2003-08-24
  • 打赏
  • 举报
回复
最好不要直接用VALUE,任何时间都一样的。
zhoutian618 2003-08-24
  • 打赏
  • 举报
回复
sql.Add('select count(*) as num from c_construct');
sql.add(' where ((start_date between :s_date and :e_date) or (end_date between :s_date and :e_date))');
parameters.parambyname('s_date').AsDateTime:=dtp1.Date;
parameters.parambyname('e_date').AsDateTime:=dtp2.Date;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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