【问题标题】:Beginning and End of the month dates based upon a dynamic value基于动态值的月初和月底日期
【发布时间】:2017-06-13 23:19:48
【问题描述】:

使用 SSIS 2013,我有一个表格,其中的发票日期存储为YYYYMMDD 格式的整数,我需要根据发票日期确定月初日期和月底日期.开始日期和结束日期也将存储为整数。

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

【问题讨论】:

  • 这个问题没有显示任何研究工作。

标签: sql-server date ssis etl


【解决方案1】:

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

这些表达式将返回 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")))

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

【讨论】:

  • 谢谢哈迪,我稍微修改了你的答案,首先将发票日期移动到一个字符串,然后删除了破折号。然后我将该输出移动到一个整数列,它工作得很好。
  • @gbdeveloper 如果这个答案解决了你的问题,你必须接受它,如果你觉得它有帮助,请随时点赞:)
  • @gbdeveloper 很高兴阅读Tour Page 以了解有关接受和支持答案的更多信息
猜你喜欢
  • 2021-09-29
  • 2022-06-12
  • 1970-01-01
  • 2019-06-04
  • 2018-10-15
  • 2022-11-27
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多