Sql server 2012 SQL Server 2012-在@tableHTML标头中格式化时间线

Sql server 2012 SQL Server 2012-在@tableHTML标头中格式化时间线,sql-server-2012,tablehtml,Sql Server 2012,Tablehtml,我是这个网站的新手,使用SQL,所以为我的谦虚问题道歉。我在SQL Server 2012环境中编写过报告。问题是,如何在报告的标题中使用动态时间线?报告在一个月的第一天和第十六天运行 标题行中的单独选择是有效的,但我没有为标题找到一个合适且信息丰富的解决方案。其想法是动态显示报告的期间,如“2017-02-01-2017-02-15” 此代码: N'<H1>Timeline'+(select DATEADD(dd, 1, EOMONTH(getdate(), -1)))+'-'

我是这个网站的新手,使用SQL,所以为我的谦虚问题道歉。我在SQL Server 2012环境中编写过报告。问题是,如何在报告的标题中使用动态时间线?报告在一个月的第一天和第十六天运行

标题行中的单独选择是有效的,但我没有为标题找到一个合适且信息丰富的解决方案。其想法是动态显示报告的期间,如“2017-02-01-2017-02-15”

此代码:

N'<H1>Timeline'+(select DATEADD(dd, 1, EOMONTH(getdate(), -1)))+'-'
  +(select DATEADD(dd, 15, EOMONTH(getdate(), -1)))+'</H1>'+
N'Timeline'+(选择DATEADD(dd,1,EOMONTH(getdate(),-1)))+'-'
+(选择DATEADD(dd,15,EOMONTH(getdate(),-1))+“”+
导致错误:

Msg 402,16级,状态1,第11行
添加运算符中的数据类型nvarchar和date不兼容


DATEADD()
返回一个整数-您需要先将其转换为字符串(例如
convert(varchar(11)、DATEADD(…)
)。另外,请不要使用类似于
dd
的速记-您保存了一个完整的字符,但您得到了什么?用
W
Y
试试看。另外,为了避免
EOMONTH
和所有那些
-1
的事情,那么
DECLARE@d date=GETDATE()怎么样;选择DATEADD(天,1天(@d),@d),DATEADD(天,16天(@d),@d)有趣的答案!我必须测试这些元素和不同的场景。未来似乎有很多sql研究在等待。谢谢你的回答
DATEADD()
返回一个整数-您需要首先将其转换为字符串(例如
convert(varchar(11)、DATEADD(…)
)。另外,请不要使用类似于
dd
的速记-您保存了一个完整的字符,但您得到了什么?用
W
Y
试试看。另外,为了避免
EOMONTH
和所有那些
-1
的事情,那么
DECLARE@d date=GETDATE()怎么样;选择DATEADD(天,1天(@d),@d),DATEADD(天,16天(@d),@d)有趣的答案!我必须测试这些元素和不同的场景。未来似乎有很多sql研究在等待。谢谢你的回答!