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
))
我有一个从平面文件接收日期字段的包。有什么方法可以把这个日期快速转换成同月的最后一天吗?
例如 输入: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
))