在创建视图中设置日期

时间:2013-04-01 13:56:46

标签: sql-server stored-procedures

我正在尝试在SQL Server 2008 R2中创建一个视图。我需要输入当前日期作为导入完成的日期。这就是我所拥有的:

SET NOCOUNT ON;
declare @SQL as varchar(4000)
        --@CD as date

--set @CD = convert(varchar(30), cast(getdate() as date), 110)


    -- Insert statements for procedure here
set @SQL = 'CREATE VIEW vw_GCS_Export
    As
    select division, [primary image id],[Item Number], [Brand Name],[Marketing Description],
    [Colours]as Colors,[Live Date],[Sample Type],substring([FileName],charindex('+ CHAR(39) + '_' + CHAR(39) +',[FileName],1)+1,CHARINDEX('+ CHAR(39) + '.' + CHAR(39) +',[FileName],1)-5) as BatchID,
    '+ CHAR(39) + '670' + CHAR(39) +' as Status, [Primary image ID] + '+ CHAR(39) + '_P' + CHAR(39) +' as [Shot Name],
    Cast(Null as varchar(50))as [Swatch/Variation],Cast(Null as varchar(50))as [Alternate Shot],[UserName],' + CAST(convert(date,Sysdatetime(),110)as varchar(10)) + ' as [Import Date],
    Cast(Null as varchar(50))as [Return Instructions],Cast(Null as varchar(50))as [Rush Request]
    from Sheet1$'


EXEC (@SQL)
select * from vw_GCS_Export

当我得到结果时,字段ImportDate返回为2008.我希望在2013年4月1日或类似的东西。我只需要将当前日期插入到该字段中。

我尝试了几种强制转换和转换组合,甚至是一个返回当前日期和时间但没有运气的函数。

1 个答案:

答案 0 :(得分:1)

日期文字需要用单引号括起来,因此您需要使用围绕日期表达式的转义引号修改@SQL:

select ''' + CAST(convert(date,Sysdatetime(),110)as varchar(10)) + ''' as [Import Date]'