在我的select语句中,我想调用我的一个列作为动态日期。
例如:
SELECT <column_name> as CONVERT(DATE, GETDATE() - 1)
FROM <table_name>
这显然不起作用。
有什么想法吗?
答案 0 :(得分:0)
为什么不存储固定列名为“DATE”的数据?并使用简单的WHERE date = CONVERT(DATE,GETDATE() - 1)?
答案 1 :(得分:0)
检查动态查询,如下所示
declare @ssql nvarchar(500)
set @ssql= N'Select Getdate() as ['+ Cast(CONVERT(DATE, GETDATE() - 1) as nvarchar(25))+'] ;'
exec sp_executesql @ssql
您可以使用列和表名更改选择
declare @ssql nvarchar(500)
set @ssql= N'Select <colName> as ['+ Cast(CONVERT(DATE, GETDATE() - 1) as nvarchar(25))+'] from tableName ;'
exec sp_executesql @ssql
有关其他列:
declare @ssql nvarchar(500)
set @ssql= N'Select <colName> as ['+ Cast(CONVERT(DATE, GETDATE() - 1) as nvarchar(25))+'],<colName2> as ['+ Cast(CONVERT(DATE, GETDATE() - 2) as nvarchar(25))+']
,<colName3> as ['+ Cast(CONVERT(DATE, GETDATE() - 3) as nvarchar(25))+'] from tableName ;'
exec sp_executesql @ssql