首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >派生列转换中的DT_DBDATE日期到YYYYMMDD

派生列转换中的DT_DBDATE日期到YYYYMMDD
EN

Stack Overflow用户
提问于 2021-03-10 17:44:56
回答 3查看 240关注 0票数 4

我想将我的transdate列转换为YYYYMMDD格式。在sql server中,我使用以下查询

代码语言:javascript
复制
SELECT FORMAT([transdate],'yyyyMMdd')

它运行得很好,但我想使用SSIS中的派生列来完成此步骤,请帮助。数据类型为DT_DBDATE.

我使用了以下查询,但它不起作用。

代码语言:javascript
复制
(DT_DBDATE)((YEAR(transdate) * 10000) + (MONTH(transdate) * 100) + DAY(transdate))

The reason of converting date into string format is basically i created a date table and i extracted this date from trans_date. Now i have to make dateid from that date That's why I converted it into int for further work especially for denormalization step.
EN

回答 3

Stack Overflow用户

发布于 2021-03-10 17:53:20

尝试使用数据转换任务将数据类型为DT_DBDATE的日期列转换为DT_WSTR,然后在表达式中使用转换后的列来获得结果

代码语言:javascript
复制
(DT_DBDATE)(SUBSTRING([ConvertedDate], 1, 4) + SUBSTRING([ConvertedDate], 6, 2)  + SUBSTRING([ConvertedDate], 9, 2))
票数 0
EN

Stack Overflow用户

发布于 2021-03-11 04:56:24

DT_DBDATE转换为字符串时,日期值的格式为yyyy-MM-dd。您只需使用replace函数删除破折号-即可:

代码语言:javascript
复制
REPLACE((DT_WSTR,50)(DT_DBDATE)[ConvertedDate],"-","")

有关更多信息,请参阅SSIS官方文档:

票数 0
EN

Stack Overflow用户

发布于 2021-03-11 17:05:02

  1. 拖动派生列并使用以下表达式:(YEAR(input_datetime_col) * 10000) + (MONTH(input_datetime_col) *10000)+ DAY(input_datetime_col)并添加为新列。

  1. 拖动数据转换,并将其转换为四字节有符号整数DT_I4

将此新列映射到您的destination.的

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66562078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档