Sql &引用;从字符串“转换日期和/或时间”时转换失败;论动态查询
你能告诉我什么是我的错吗。试试这个Sql &引用;从字符串“转换日期和/或时间”时转换失败;论动态查询,sql,sql-server,Sql,Sql Server,你能告诉我什么是我的错吗。试试这个 declare @date Datetime ='',@query nvarchar(max); set @date =getdate(); set @query='select * from [3].[Sync_Database_BTS].dbo.[Test] where [Test] >=cast(date,'+ @date +' ,103) ; ' exec sp_executesql @query 试试这个 declare @date
declare @date Datetime ='',@query nvarchar(max);
set @date =getdate();
set @query='select * from [3].[Sync_Database_BTS].dbo.[Test] where [Test] >=cast(date,'+ @date +' ,103) ; '
exec sp_executesql @query
试试这个
declare @date Datetime ='',@query nvarchar(max);
set @date =getdate();
set @query='select * from [3].[Sync_Database_BTS].dbo.[Test] where [Test] >=cast(date,'+ @date +' ,103) ; '
exec sp_executesql @query
如果在动态查询中使用
datetime
类型,则需要将date
转换为varchar
您不能在cast
函数中使用style
,您需要改用Convert
。此外,还需要在datetime
参数周围加上额外的单引号
declare @date Datetime ='',@query nvarchar(max);
set @date =getdate();
set @query='select * from [3].[Sync_Database_BTS].dbo.[Test] where [Test] >=convert(date,'+ @date +' ,103) ; '
exec sp_executesql @query
始终使用Print语句来调试动态查询如果在动态查询中使用
datetime
类型,则需要将date
转换为varchar
您不能在cast
函数中使用style
,您需要改用Convert
。此外,还需要在datetime
参数周围加上额外的单引号
declare @date Datetime ='',@query nvarchar(max);
set @date =getdate();
set @query='select * from [3].[Sync_Database_BTS].dbo.[Test] where [Test] >=convert(date,'+ @date +' ,103) ; '
exec sp_executesql @query
始终使用打印语句来调试动态查询声明@date-Datetime
,@query nvarchar(最大值);
设置@date=getdate()-2;
在[Test]中设置@query='select*,其中convert(varchar,Test,100)>='+''''''转换(varchar,date,100)+'''
打印(@query)
exec sp_executesql@querydeclare@date-Datetime
,@query nvarchar(最大值);
设置@date=getdate()-2;
在[Test]中设置@query='select*,其中convert(varchar,Test,100)>='+''''''转换(varchar,date,100)+'''
打印(@query)
exec sp_executesql@query仅仅因为您使用的是动态查询,这并不妨碍您使用并保持所有内容的良好键入:
DECLARE @date DATETIME ='',
@query NVARCHAR(max);
SET @date = Getdate();
SET @query='select * from [3].[Sync_Database_BTS].dbo.[Test] where [Test] >=convert(date,'''
+ Cast(@date AS VARCHAR(50)) + ''' ,103) ; '
--print @query
EXEC Sp_executesql
@query
仅仅因为您使用的是动态查询,这并不妨碍您使用并保持所有内容的良好键入:
DECLARE @date DATETIME ='',
@query NVARCHAR(max);
SET @date = Getdate();
SET @query='select * from [3].[Sync_Database_BTS].dbo.[Test] where [Test] >=convert(date,'''
+ Cast(@date AS VARCHAR(50)) + ''' ,103) ; '
--print @query
EXEC Sp_executesql
@query
试试这个这对我有用
declare @date Datetime ='',@query nvarchar(max),@parms nvarchar(max);
set @date =getdate();
set @query=N'select * from [3].[Sync_Database_BTS].dbo.[Test]
where [Test] >=cast(date,@date) ; ';
set @parms = N'@date datetime';
exec sp_executesql @query,@parms,@date
如果您使用126格式,则它是Sql Server的默认格式
试试这个这对我有用
declare @date Datetime ='',@query nvarchar(max),@parms nvarchar(max);
set @date =getdate();
set @query=N'select * from [3].[Sync_Database_BTS].dbo.[Test]
where [Test] >=cast(date,@date) ; ';
set @parms = N'@date datetime';
exec sp_executesql @query,@parms,@date
如果您使用126格式,则它是Sql Server的默认格式
正在工作,谢谢,但为什么我的查询不起作用?“这是什么问题?”我补充道explantion@King_Fisher,如果您觉得这个答案对您有用,请随时接受。:-)正在工作,谢谢,但为什么我的查询不起作用?“这是什么问题?”我补充道explantion@King_Fisher,如果您觉得这个答案对您有用,请随时接受。:-)你好@rajesh yadav,你能解释一下错误吗?这只是一个数据类型未匹配错误…我用varchar转换了列和值,就是这样:)不,我还想检查日期和时间,不仅仅是date@King_Fisher查看nowHi@rajesh yadav,你能解释一下错误吗?这只是一个数据类型未匹配错误…我在varchar中转换了列和值,就是这样:)不,我还想检查日期和时间,不仅仅是date@King_Fisher现在检查