0

我正在尝试使用派生列将字符串转换为日期,并且我正在使用平面文件源。我阅读了大量关于 stackoverflow 的文章并遵循相同的步骤,但我无法将我的字符串转换为日期格式。

这是字符串

Tue Nov 25 17:32:03 EST 2008

我想表现得像

2008-nov-25

我尝试使用以下代码

(DT_DBDATE)(SUBSTRING(dateCreated,24,4) + "-" + SUBSTRING(dateCreated,4,3) + "-" +    SUBSTRING(dateCreated,8,2))

我也尝试使用

  (DT_DATE)(SUBSTRING(dateCreated,24,4) + "-" + SUBSTRING(dateCreated,4,3) + "-" +    SUBSTRING(dateCreated,8,2))

  (DT_DBTIMESTAMP)(SUBSTRING(dateCreated,24,4) + "-" + SUBSTRING(dateCreated,4,3) + "-" +    SUBSTRING(dateCreated,8,2))

这是将字符串转换为日期格式的正确方法吗?

4

2 回答 2

0

我认为不可能按照BOL以 yyyy-mon-dd 的格式显示。我检查了你的表情,经过细微的改动,它就可以工作了。您不能再次将字符串类型转换为字符串(您希望输出中的月份名称)。即使您要使用 DATEPART 函数,它也会再次将不同的部分连接成一个字符串。

与您的输入一起使用的表达式如下(将 @dateCreated 替换为您想要的任何内容)。

SUBSTRING(@[User::dateCreated],24,5) + "-" + SUBSTRING(@[User::dateCreated],4,4) + "-" + SUBSTRING(@[User::dateCreated],8,3)
于 2012-07-12T20:15:59.437 回答
0

谢谢拉吉夫!

因此,给出所需结果的最终表达式是:-

(DT_DBTIMESTAMP)(SUBSTRING(dateCreated,24,5) + "-" + SUBSTRING(dateCreated,4,4) + "-" + SUBSTRING(dateCreated,8,3) + " " + SUBSTRING(dateCreated,11,9))

输入是: -

Tue Nov 25 17:47:41 EST 2008

输出是: -

2008-11-25 17:47:41.000
于 2012-07-13T15:51:20.633 回答