Sql 如何将列命名为日期值

Sql 如何将列命名为日期值,sql,Sql,结果如下所示,但当列名显示“今天”时,我希望它是今天的日期 我将返回一个表示日偏移量的整数,并在客户机中对其进行解析,否则您将不得不使用动态SQL或对基础列名本身进行处理 declare @sql nvarchar(128) = ' select col1, col2, 0 as [' + cast(getdate() as nvarchar(32)) + '] from T' exec(@sql) 或 尝试以下技巧: declare @dt datetime declare @

结果如下所示,但当列名显示“今天”时,我希望它是今天的日期


我将返回一个表示日偏移量的整数,并在客户机中对其进行解析,否则您将不得不使用动态SQL或对基础列名本身进行处理

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

尝试以下技巧:

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)

你能更明确地说出你期望的结果吗?另外,请注明数据库。这是关于Oracle、MySQL等的吗?您的列日益增加?@stukselbax我认为这是另一回事。通常不建议这样做-每个SQL查询都应该返回一个具有相同“形状”的结果集-其中按“形状”,我们的意思是它应该有相同的列——这些列是由它们的名称和类型定义的。因此,虽然您可能会找到一种方法(可能是使用某种形式的动态SQL),但最好在另一层(可能是在报告工具中)执行这种格式设置技巧?错误提示!正是因为这是错误的执行方式!发布您的查询,然后在更正后发回这是我想要的最基本的内容:选择0作为GetDate(),因此列名为todays date。。。
declare @dt datetime
declare @sql varchar(100)
set @dt = getdate()
set @sql = 'select 0 as [ ' + convert( varchar(25),@dt,120) + ']'  
exec (@sql)