ssis 转换 ddmonyyyy dd/mm/yyyy

jho*_*owe 3 ssis ssis-expressions

大家好,正在尝试转换

2014 年 1 月 16 日 --> 2014 年 1 月 16 日。有任何想法吗???我试图避免 ? 一月:1?2 月 : 2 等

SSMS 会很高兴地使用 SELECT MONTH('16JAN2014') 来获取月数,但是 MONTH("16JAN2014" ) 在 SSIS 中不起作用。

嗯...尝试过代码,但在下面不断出现错误...

在此处输入图片说明

Ava*_*rkx 6

使用脚本组件来执行转换!当然一定要设置你的读/写变量!在 .NET 框架中使用特定的区域设置非常容易,因此脚本组件应该比信任数据库为您正确执行转换要好。

使用脚本组件从字符串中解析日期时间值

    using System.Globalization;

    ...

    public void Main()
    {
        String str = ( String )Dts.Variables[ "StringVariable" ].Value;

             // Good candidate for another variable, this is just an example.
        String format = "ddMMMyyyy"; 
        CultureInfo provider = CultureInfo.InvariantCulture;

        DateTime dt = DateTime.Parse( str, format, provider );
        Dts.Variables[ "DateTimeVariable" ].Value = dt;

        Dts.TaskResult = ( int )ScriptResults.Success;
    }
Run Code Online (Sandbox Code Playgroud)

在 VB 中,如果这就是你的滚动方式™

    Imports System.Globalization

    ...

    Public Sub Main()
            Dim str As String = Dts.Variables("StringVariable").Value
            Dim format As String = "ddMMMyyyy"
            Dim provider As CultureInfo = CultureInfo.InvariantCulture
            Dim dt As DateTime = Date.ParseExact(str, format, provider)
            Dts.Variables("DateTimeVariable").Value = dt
            Dts.TaskResult = ScriptResults.Success
    End Sub
Run Code Online (Sandbox Code Playgroud)