首页 > 解决方案 > 使用 SSIS 和 T-SQL 将日期转换为 dd.mm.yyyy

问题描述

当我使用 T-SQL 将日期时间转换为dd.mm.yyyy以使用 SSIS 输出 csv 时,该文件是使用 dd-mm-yyyy hh:mm:ss生成的,这不是我需要的。

我在用:

convert(varchar,dbo.[RE-TENANCY].[TNCY-START],104)

这在 SSMS 中似乎是正确的。

处理要从 SSIS 输出的转换的最佳方法是什么?并不像我想象的那么简单。

标签: sql-servertsqldatessis

解决方案


这个对我有用。

使用您的查询作为驱动程序包的框架

SELECT 
    CONVERT(char(10),CURRENT_TIMESTAMP,104) AS DayMonthYearDate

我为我们的 dd.mm.yyyy 值明确声明了一个长度,因为它总是 10 个字符,所以让我们使用反映这一点的数据类型。

运行查询,可以看到正确生成 13.02.2019

在 SSIS 中,我向数据流中添加了一个 OLE DB 源并粘贴到我的查询中

在此处输入图像描述

我连接了一个平面文件目标并运行了包。正如预期的那样,查询生成的字符串进入数据流并按预期降落在输出文件中。

在此处输入图像描述

如果您遇到其他情况,我首先要检查的是双击源和下一个组件之间的线,然后选择元数据。查看租赁开始列的报告内容。如果它不指示 dt_str/dt_wstr 则 SSIS 认为数据类型是日期变体,并将特定于区域设置的规则应用于格式。您可能还需要检查该列在平面文件连接管理器中的定义方式。


推荐阅读