SSIS - 从输入日期开始的月份的最后一天

SSIS - last day of month from an input date

我有一个从平面文件接收日期字段的包。有什么方法可以把这个日期快速转换成同月的最后一天吗?

例如 输入:01.08.2019 输出:31.08.2019

非常感谢

一种方法是通过 Lookup

包裹 -

所以,基本上你读取文件,然后将它们传递给 Lookup,后者将为每个文件 运行,并在数据库中查询以找出输入的月份的最后一天日期。

您需要为数据库查询设置 OLEDB 连接,下面的 SQL 查询将为您完成这项工作 -

DECLARE @date VARCHAR(10) = ?
SET @date = REPLACE(@date,'.','/');
SET @date = CONVERT(CHAR(10),CONVERT(DATETIME,LEFT(@date,10),105),101);
SET @date = EOMONTH(@date);
SET @date = SUBSTRING(@date, 9, 2) + '/' + SUBSTRING(@date, 6, 2)  + '/' + SUBSTRING(@date, 1, 4);
SELECT REPLACE(@date,'/','.') AS Result;

我经常用这个:

用@d 代替您的日期列。

dateadd("d",-1, --Gets last day of current month
  dateadd("mm",1, --Gets 1st day of next month
    (DT_DATE)(month(@d) + "/1/" + year(@d)) -- Gets first day of current month
))