将数据加载到excel文件的查询语法不正确

我有我查询哪些在Excel文件中写入。

查询看起来像这样

EXEC sp_makewebtask @outputfile = 'e:\Testing.xls', @query = ' SELECT top 10 * FROM [myDB].[dbo].[TOTALS_DAY] WHERE [START_DATETIME] < '20140501'', @FixedFont=0, @lastupdated=0, @resultstitle = 'Testing details' 

如果我注释掉它生成的where子句,但是我必须使用date和当我指定date时抛出我的错误。

消息102,级别15,状态1,行5
“20140501”附近的语法错误。

如何解决这个问题?

你写了2“,试试这个:

编辑

 DECLARE @date DATETIME set @date = '20140501' EXEC sp_makewebtask @outputfile = 'e:\Testing.xls', @query = ' SELECT top 10 * FROM [myDB].[dbo].[TOTALS_DAY] where [START_DATETIME] < @date, @FixedFont=0, @lastupdated=0, @resultstitle='Testing details' 

我希望这有帮助

看起来你有无意识的匹配引号。 由于您在单引号中包含了SQL语句,因此查询被解释为

 ' SELECT top 10 * FROM [myDB].[dbo].[TOTALS_DAY] where [START_DATETIME] < ' 

这意味着什么。 由于date应该是在单引号,是否有可能把你的价值@query在双引号? 喜欢这个:

 EXEC sp_makewebtask @outputfile = 'e:\Testing.xls', @query = " SELECT top 10 * FROM [myDB].[dbo].[TOTALS_DAY] where [START_DATETIME] < '20140501'", @FixedFont=0, @lastupdated=0, @resultstitle='Testing details' 

有和额外的单引号尝试:

 EXEC sp_makewebtask @outputfile = 'e:\Testing.xls', @query = ' SELECT top 10 * FROM [myDB].[dbo].[TOTALS_DAY] where [START_DATETIME] < '20140501', @FixedFont=0, @lastupdated=0, @resultstitle='Testing details' 

我做了不同的方式,因为与date时间格式的variables声明不工作,我find了方法,并做到这一点

EXEC sp_makewebtask @outputfile = 'e:\VT_TOTALS_DAY_en_US.xls', @query = 'SELECT * from FROM [myDB].[dbo].[TOTALS_DAY] where [START_DATETIME] < DATEADD(DAY, -20, GETDATE())', @lastupdated=0, @resultstitle='Testing details'

必须使用DATEADD(DAY, -20, GETDATE())来获取2014-05-01