CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

帮忙看一段SQL,帮我改正一下~谢谢各位高手啦~

楼主Iceguy(大侠龙卷风)2006-06-02 19:46:34 在 MS-SQL Server / 疑难问题 提问

DECLARE   @SQL   varchar(300)  
  declare @CID   varchar(4)  
  declare @Day   varchar(4)  
  set   @CID='0001'  
  set   @Day='10'  
  SET   @SQL='SELECT   *   FROM   basBusiness   WHERE   CID='+@CID+'   and   BSysDate>'+getdate()+'-'+@Day+'ORDER   BY   BSysDate   DESC'  
  EXEC(@SQL)  
   
  出错:Conversion   failed   when   converting   datetime   from   character   string.  
   
  问题点数:20、回复次数:5Top

1 楼Haiwer(海阔天空)回复于 2006-06-02 19:49:22 得分 5

DECLARE   @SQL   varchar(300)  
  declare @CID   varchar(4)  
  declare @Day   varchar(4)  
  set   @CID='0001'  
  set   @Day='10'  
  SET   @SQL='SELECT   *   FROM   basBusiness   WHERE   CID='''+@CID+'''   and   BSysDate>'''+convert(varchar(7),getdate(),120)+'-'+@Day+'''   ORDER   BY   BSysDate   DESC'  
  EXEC(@SQL)  
  Top

2 楼Reeezak(坚持信念)回复于 2006-06-02 20:55:34 得分 10

DECLARE   @SQL   varchar(300)  
  declare @CID   varchar(4)  
  declare @Day   varchar(4)  
  set   @CID='0001'  
  set   @Day='10'  
  SET   @SQL='SELECT   *   FROM   basBusiness   WHERE   CID='+@CID+'   and   BSysDate>dateadd(dd,   '+getdate()+',   cast('+@Day+'   as   int)   *   -1)   ORDER   BY   BSysDate   DESC'  
  EXEC(@SQL)Top

3 楼Reeezak(坚持信念)回复于 2006-06-02 21:01:05 得分 0

更正  
   
  DECLARE   @SQL   varchar(300)  
  declare @CID   varchar(4)  
  declare @Day   varchar(4)  
  set   @CID='0001'  
  set   @Day='10'  
  SET   @SQL='SELECT   *   FROM   basBusiness   WHERE   CID='''+@CID+   '''   and   BSysDate>dateadd(dd,   '''+   convert(varchar,   getdate(),   120)   +''',   cast('''+@Day+'''   as   int)   *   -1)   ORDER   BY   BSysDate   DESC'  
  EXEC(@SQL)  
  Top

4 楼liangpei2008(笑青天)回复于 2006-06-02 21:01:52 得分 5

DECLARE   @SQL   varchar(300)  
  declare @CID   varchar(4)  
  declare @Day   varchar(4)  
  set   @CID='0001'  
  set   @Day='10'  
  SET   @SQL='SELECT   *   FROM   basBusiness   WHERE   CID='+@CID+'   and   BSysDate>'+char(39)+convert(varchar(8),getdate(),120)+@Day+char(39)+'   ORDER   BY   BSysDate   DESC'  
  print   @SQL  
  Top

5 楼Reeezak(坚持信念)回复于 2006-06-02 21:04:25 得分 0

晕,又写错  
  再次更正  
   
  DECLARE   @SQL   varchar(300)  
  declare @CID   varchar(4)  
  declare @Day   varchar(4)  
  set   @CID='0001'  
  set   @Day='10'  
  SET   @SQL='SELECT   *   FROM   basBusiness   WHERE   CID='''+@CID+   '''   and   BSysDate>dateadd(dd,   '+@Day+'   *   -1,   '''+   convert(varchar,   getdate(),   120)   +''')   ORDER   BY   BSysDate   DESC'  
  print   @SQLTop

相关问题

关键词

得分解答快速导航

  • 帖主:Iceguy
  • Haiwer
  • Reeezak
  • liangpei2008

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo