Sql server 带有日期列的表-带有变量的转换错误
我有一张叫做[尾巴]的桌子,看起来像这样Sql server 带有日期列的表-带有变量的转换错误,sql-server,Sql Server,我有一张叫做[尾巴]的桌子,看起来像这样 Duration January February .... 1 0.8782 0.735 2 37.22 0.678 3 0.544 0.47347 我需要做的是根据具体情况查找给定月份的值。到目前为止,我有(例如): 这应该相当于 从[TAILS]中选择[Duration]、[APRIL] 但我的代码会导致转换错误消息。在网上搜索解决方案后,我尝试了几种不同的方法将变量转换成这样,
Duration January February ....
1 0.8782 0.735
2 37.22 0.678
3 0.544 0.47347
我需要做的是根据具体情况查找给定月份的值。到目前为止,我有(例如):
这应该相当于
从[TAILS]中选择[Duration]、[APRIL]
但我的代码会导致转换错误消息。在网上搜索解决方案后,我尝试了几种不同的方法将变量转换成这样,但毫无结果
有人能给我建议吗?我正在使用SQL Server 2014
非常感谢您不能选择这样的列,但您可以构造一个动态sql查询,并使用
sp_executesql
执行它,如下所示:
declare @monthX Date = '20160101';
declare @sql nvarchar(max);
set @sql = 'Select [Duration], '+quotename(datename(month,@monthx))+' From [Tails];';
select @sql as sql;
exec sp_executesql @sql;
本例执行的查询为:
Select [Duration], [January] From [Tails];
rextester演示:您不能选择这样的列,但您可以构造一个动态sql查询,并使用
sp_executesql
执行它,如下所示:
declare @monthX Date = '20160101';
declare @sql nvarchar(max);
set @sql = 'Select [Duration], '+quotename(datename(month,@monthx))+' From [Tails];';
select @sql as sql;
exec sp_executesql @sql;
本例执行的查询为:
Select [Duration], [January] From [Tails];
rextester演示:您可以动态创建查询,然后使用执行查询:
DECLARE @monthX Datetime
DECLARE @monthS varchar(20)
SET @monthX = '04-01-2016'
SET @monthS = datename(month,@monthX)
DECLARE @SQL varchar(100)
SET @SQL = 'select [Duration], [' + @monthS + '] from [Tails];'
EXECUTE (@SQL)
您可以动态创建查询,然后使用来执行查询:
DECLARE @monthX Datetime
DECLARE @monthS varchar(20)
SET @monthX = '04-01-2016'
SET @monthS = datename(month,@monthX)
DECLARE @SQL varchar(100)
SET @SQL = 'select [Duration], [' + @monthS + '] from [Tails];'
EXECUTE (@SQL)
如果你想把整列加起来。。。使用该值(减去测试的温度数据)
如果你想把整列加起来。。。使用该值(减去测试的温度数据)
由于您正在尝试获取列名,我认为您需要使用动态SQL并执行该命令。由于您正在尝试获取列名,我认为您需要使用动态SQL并执行该命令。非常感谢谢谢,非常感谢,明白了。谢谢你是的,你明白了。非常感谢。