基于动态值的月初和月末日期

Beginning and End of the month dates based upon a dynamic value

使用 SSIS 2013,我有一个 table,它的发票日期以 YYYYMMDD 格式存储为整数,我需要确定月初日期和月末日期基于发票日期的月份日期。开始日期和结束日期也将存储为整数。

例如我的发票日期是:20170512 我想 return:20170501 (BeginDate) 和 20170531 (EndingDate)

您可以使用以下表达式添加两个派生列

这些表达式将 return 2 列 DT_DATE

第一天:

(DT_DATE)(LEFT([InvoiceDate],4) + "-" + SUBSTRING([InvoiceDate],5,2) + "-01")

最后一天:

DATEADD("d",-1,DATEADD("m",1,(DT_DATE)(LEFT([InvoiceDate],4) + "-" + SUBSTRING([InvoiceDate],5,2) + "-01")))

如果需要return2列格式相同YYYYMMDD

第一天:

LEFT([InvoiceDate],4) + "-" + SUBSTRING([InvoiceDate],5,2) + "-01"

最后一天:

LEFT([InvoiceDate],4) + "-" + SUBSTRING([InvoiceDate],5,2) + RIGHT("0" + (DT_WSTR,2)DAY(DATEADD("d",-1,DATEADD("m",1,(DT_DATE)(LEFT([InvoiceDate],4) + "-" + SUBSTRING([InvoiceDate],5,2) + "-01")))),2)