ssis - 在 SSIS 派生列中将 DDMMYY 转换为 DD-MM-YY
问题描述
在 varchar 数据类型中放置“-”时遇到问题。. 需要是在最后两位数之后我们需要输入“-”,然后在两位数之后再次输入,依此类推。
输入字符串是- 21220 输出字符串- 2-12-20
或者,
输入字符串- 311220 输出字符串- 31-12-20
谁可以帮我这个事 ?
解决方案
我会使用脚本组件来进行字符串操作,因为它更容易操作并且更具可读性。
1) 添加脚本组件作为转换
2)在输入列下,检查您的日期列(我在下面的示例中将此称为 myDate)
3) 在 Inputs and Outputs 下的 Output 0 下,为新日期添加一列,下面称为 formattedDate
4) 在脚本中,修改 Input0_ProcessInputRow 方法。在解析字符串之前,请确保它不为空。然后在左边用“0”填充它以确保我们的长度始终为 6。解析日期元素并为新列设置值。
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
if (!Row.mydate_IsNull)
{
var paddedDate = Row.mydate.PadLeft(6, '0');
var day = paddedDate.Substring(0, 2);
var month = paddedDate.Substring(2, 2);
var year = paddedDate.Substring(4, 2);
Row.formattedDate = $"{day}-{month}-{year}";
}
}
推荐阅读
- tfs - 我如何列出我所有的评论或至少我工作过的 WI?
- go - 什么时候应该显式调用 os.File.Close()?
- flutter - 页面重建时颤振重建底部导航栏
- reactjs - 在 reactJS 中将值列表作为参数传递
- php - 编辑配置文件laravel 7未定义变量中的错误密码更改
- go - 如何为多个环境和突变的组合生成配置
- python - Django 在 Django 模板中访问列表元素的属性
- android - 在 Flutter 中使用 android 10 活动缩放过渡
- microsoft-graph-api - 对于我的 Teams 应用在 App Studio 中收到的权限,我应该使用什么 API?
- java - 如何防止自定义视图覆盖自身?