2014-09-01 63 views
1

我一直在阅读相当多的SO线程&如何实现这一点,但没有什么是真的帮助我。DATENAME作为列名?

IE:

How do I name a column as a date value

current month as column name

todays date as a column name to a simple select statement.

我还可以继续向你表明我已阅读线程,但没有人可以回答我想。

从本质上讲,我试图在SQL做的是这样的:

SELECT 
    Blahblah AS DATENAME(MONTH, GETDATE()) --AS "September" 

OR

DECLARE 
    @CM VARCHAR(50) 

SET 
    @CM = DATENAME(MONTH,GETDATE()) 

SELECT 
    Blahblah AS @CM --AS "September" 

我知道,那些没有工作,但是这是要告诉你我我正在努力去做。有没有人能够实现这一目标?

你能指点我一条你可能读过的文章吗?

非常感谢,

迈克

+0

使用数据透视表,也显示一些例子表 – sumit 2014-09-01 09:03:04

+0

嗯,所以它不像我想的那么简单?我可能就放弃了这个想法:(哈哈 – Mike 2014-09-01 09:05:47

+0

对不起..我想更多..其简单..检查答案 – sumit 2014-09-01 09:10:01

回答

0

试试这个

DECLARE 
@CM VARCHAR(50), 
@sql varchar(max) 
SET @CM = DATENAME(MONTH,GETDATE()) 

SET @sql ='SELECT 
''Blahblah'' as '+ @CM 
exec(@sql)  
2

也许你可以使用动态SQL这样的:

create table t (val int) 
insert t values (100) 

declare @month varchar(20) = datename(month, getdate()) 

declare @sql varchar(max) 
set @sql = 'select val as ' + @month + ' from t' 
exec (@sql) 

结果:

September 
----------- 
100