月份的开始和结束日期基于动态值

时间:2017-06-13 23:19:48

标签: sql-server date ssis etl

使用SSIS 2013,我有一个表格,其发票日期以YYYYMMDD的格式存储为整数,我需要根据以下内容确定月份日期的开头和月份日期的结束日期。发票日期。开始日期和结束日期也将存储为整数。

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

1 个答案:

答案 0 :(得分:1)

您可以使用以下表达式"

添加两个派生的COlumns

这些表达式将返回DT_DATE

类型的2列

第一天:

(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")))

如果您需要返回两列格式相同的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)