在SSIS中将DateTime类型Birthday列转换为DD.MM.YYYY格式DATE类型
解决SSIS中DateTime转DATE并格式化为DD.MM.YYYY的问题
两种场景的解决方案
场景1:转换为DATE类型(仅存储日期部分)
DATE类型本身不存储显示格式,仅保留日期核心信息,显示格式由后续客户端工具控制。在SSIS派生列中使用以下表达式即可完成类型转换:
(DT_DBDATE)[Birthday]
设置派生列的数据类型为DT_DBDATE,即可将源DateTime列转为DATE类型,仅保留年月日部分。
场景2:生成DD.MM.YYYY格式的字符串
如果需要直接输出该格式的文本(而非DATE类型),使用拼接表达式处理前导零并格式化:
RIGHT("0" + (DT_WSTR, 2)DAY([Birthday]), 2) + "." + RIGHT("0" + (DT_WSTR, 2)MONTH([Birthday]), 2) + "." + (DT_WSTR, 4)YEAR([Birthday])
DAY([Birthday])/MONTH([Birthday])提取日、月数值(DT_WSTR, 2)将数值转为字符串,RIGHT("0" + ..., 2)确保单数字的日/月补前导零(如9转为"09")- 最后拼接成年份,得到标准的DD.MM.YYYY格式字符串
常见错误说明
- 直接用
(DT_STR, 10, 1252)[Birthday]会采用SSIS默认的日期字符串格式(如YYYY-MM-DD),无法得到目标格式 - 未处理前导零会导致单数字日/月显示为一位,破坏格式统一性
内容的提问来源于stack exchange,提问作者Flash
相关产品推荐
相关产品推荐

