0

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 として返されます。私は 04/01/2013 または同様のものを望んでいました。フィールドに挿入された現在の日付を取得するだけです。

いくつかのキャストと変換の組み合わせ、さらには現在の日付と時刻を返す関数を試しましたが、うまくいきませんでした。

4

1 に答える 1

1

日付リテラルは一重引用符で囲む必要があるため、日付式をエスケープ引用符で囲んで @SQL を変更する必要があります。

select ''' + CAST(convert(date,Sysdatetime(),110)as varchar(10)) + ''' as [Import Date]'
于 2013-04-01T14:08:33.453 に答える