【问题标题】:Stripping date/time delimiters in an SSIS csv export在 SSIS csv 导出中去除日期/时间分隔符
【发布时间】:2019-08-16 18:49:29
【问题描述】:

我正在通过 SSIS 导出从表查询中导出 csv。当导出到 csv 时,我希望能够从日期时间字段中去除空格、冒号、秒的小数部分和破折号。这在 SQL 和 SSIS 数据导出包中是否可行?

当前实际结果

747,2019-08-15 3:26:00.673000000,55596,3,4190002543,Q,1,3.9900000000000002,1,0

想要的结果

747,20190815132600,55596,3,4190002543,Q,1,3.9900000000000002,1,0

【问题讨论】:

    标签: sql sql-server csv ssis etl


    【解决方案1】:

    我假设您使用的是 SQL Server 导入和导出向导

    不要选择表作为源,you can use an SQL command 并删除这些字符:假设 Col2 是日期列

    select 
    Col1,
    REPLACE(REPLACE(REPLACE(SUBSTRING([Col2],1,charindex('.',[Col2],1) - 1),'-',''),':',''),' ',''),
    Col3,
    ...
    FROM Table
    

    如果列日期类型是日期时间,则可以使用FORMAT()函数

    SELECT
    Col1,
    FORMAT(Col2,'yyyyMMddHHmmss')
    Col3,
    ...
    FROM Table
    

    【讨论】:

    • 我遇到的唯一问题是我有数据,但是日期/时间列标题已被删除,而所有其他列标题都已保留。很奇怪。
    • @AnthonyBondi 尝试添加别名为FORMAT(Col2,'yyyyMMddHHmmss') as Col2
    • 太棒了!我知道我在格式之后忘记了一个简单的片段。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多