加载到目标表后转换的日期格式不一致

时间:2015-11-02 19:19:38

标签: sql-server tsql

我正在使用merge语句加载数据,我必须计算并转换日期字段并加载到dest表中的varchar列

MERGE dbo.DestTable AS Target
    USING (
    SELECT ID, 
    MAX(CAST(CONVERT(date,dateadd(day, CAST(date as int),'1960-01-01'))AS VARCHAR(30))) date,
    max(col1) col1,
    max(col2) col2
    FROM dbo.Staging
    GROUP BY  ID
    )
    AS Source
    ON ( Target.ID = Source.ID )
    WHEN MATCHED THEN 
        UPDATE SET  Target.Date = Source.date,
                    Target.col1= Source.col1,
                    Target.col2= Source.col2,

    WHEN NOT MATCHED BY TARGET THEN 
        INSERT (ID
               ,Date
               ,col1
               ,col2
               )
        VALUES (
                    Source.ID,
                    Source.date,
                    Source.col1,
                    Source.col2
                    );

运行select语句会给我第二个输出,查询目标表会给出第一个输出。目标列与最终转换的源字段具有相同的数据类型。

输出位于以下链接

date format inconsistency

我也试过在网上寻找解决方案但是没有找到太多帮助。如果有人能告诉我哪里出错了,我真的很感激。提前谢谢!

0 个答案:

没有答案