SSIS-输入日期后的每月的最后一天

时间:2018-08-03 09:12:23

标签: date ssis flat-file

我有一个从平面文件接收日期字段的程序包。这个日期是否可以快速转换为同一月的最后一个日期?

例如 输入:01.08.2019 输出:31.08.2019

非常感谢

2 个答案:

答案 0 :(得分:2)

一种实现方法是通过Lookup

包装-

enter image description here

因此,基本上,您阅读了文件,然后将它们传递给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;

答案 1 :(得分:2)

我经常使用这个:

将@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
))