[SQL Server]从字符串向 datetime 转换时失败

DECLARE @sel VARCHAR(100)
DECLARE @dat datetime
set @dat=CONVERT(varchar(10), CONVERT(varchar(8),dateadd(month,-2,getdate()),23)+'01' , 120)
set @sel='select top 10 * from log where submitdate < '+@dat
EXEC @sel;

执行以上语句,提示: [SQL Server]从字符串向 datetime 转换时失败,请问是什么原因造成的?
FineReporttudou 发布于 2016-3-30 17:22
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
404177716发布于2016-3-30 17:22(编辑于 2023-9-6 09:34)
555
最佳回答
0
tudou发布于2016-3-30 18:14(编辑于 2023-9-6 09:34)
555
最佳回答
0
404177716发布于2016-3-31 09:16(编辑于 2023-9-6 09:34)
555
最佳回答
0
404177716发布于2016-3-31 09:17(编辑于 2023-9-6 09:34)
555
  • tudou tudou(提问者)
    搞定了:
    DECLARE @sel VARCHAR(100)
    DECLARE @dat VARCHAR(10)
    set @dat=CONVERT(varchar(10), CONVERT(varchar(8),dateadd(month,-2,getdate()),23)+\'01\' , 120)
    set @sel=\'select top 10 * from log where submitdate < \'\'\'+@dat+\'\'\'\'
    EXEC(@sel);
    回复
    2016-03-31 16:11 
最佳回答
0
tudou发布于2016-3-31 16:11(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 3726浏览人数
  • 最后回答于:2016-3-31 16:11
    活动推荐 更多
    热门课程 更多
    返回顶部