如何将列命名为日期值

时间:2011-07-14 10:37:15

标签: sql

结果看起来像这样,但是列名称“今天”我希望它是今天的日期。

enter image description here

2 个答案:

答案 0 :(得分:3)

尝试这种技巧:

declare @dt datetime
declare @sql varchar(100)
set @dt = getdate()
set @sql = 'select 1 as [ ' + convert( varchar(25),@dt,120) + ']'  
exec (@sql)

在你的案例中:

declare @dt datetime
declare @sql varchar(100)
set @dt = getdate()
set @sql = 'select 0 as [ ' + convert( varchar(25),@dt,120) + ']'  
exec (@sql)

答案 1 :(得分:0)

我会返回一个表示日偏移量的整数,并在客户端中解析它,如果你不得不使用动态SQL或者使用基础列名本身;;

declare @sql nvarchar(128) = '
select 
  col1,
  col2,
  0 as [' + cast(getdate() as nvarchar(32)) + ']
from T'
exec(@sql)

或者

--today
declare @now varchar(32) = cast(getdate() as varchar(32)) 

--result to temp table
select col1, col2, 0 as [Now] into #T from TheTable
--rename col
exec tempdb..sp_rename '#T.Now', @now, 'COLUMN'
--select
select * from #T