Sql server 2008 在派生列中导入字符串日期

Sql server 2008 在派生列中导入字符串日期,sql-server-2008,ssis,Sql Server 2008,Ssis,我有一个字符串日期正在从以下格式的文件中读取,并给我cast错误 Oct 25 2011 10:18:10:756PM 我使用派生列将字符串强制转换为日期 我在表达式中尝试了以下内容,但没有成功 (DT_DBTIMESTAMP)myDate CAST(myDate as datetime) CONVERT(datetime, myDate) //I get parse error on this. 必须有一个简单的方法来铸造这个。提前感谢。详细的回答,但对于“SSI无法识别问题中提供的日期

我有一个字符串日期正在从以下格式的文件中读取,并给我cast错误

Oct 25 2011 10:18:10:756PM
我使用派生列将字符串强制转换为日期

我在表达式中尝试了以下内容,但没有成功

(DT_DBTIMESTAMP)myDate
CAST(myDate as datetime)
CONVERT(datetime, myDate)  //I get parse error on this.

必须有一个简单的方法来铸造这个。提前感谢。

详细的回答,但对于“SSI无法识别问题中提供的日期格式”这一问题,我不敢苟同

如果它被重述为“SSIS无法在没有帮助的情况下识别所提供的日期格式”,那么在本例中的根本问题是,默认情况下,日期和数字解析例程是无效的。总的来说,这是件好事,除非不是。我第一次偶然发现这一点是在我处理来自大型机的ccyymmdd格式的日期时。正如其他人指出的,它将在tsql中解析,为什么不在SSIS中解析呢?有很多文章主张对字符串数据进行切片和切分,以使其成为有效的日期时间,但为什么要经历所有这些麻烦呢

将其作为示例输入数据(以制表符分隔)

还有一个像这样的包裹

通过更改上的一个设置,我可以使包失败或不失败

右键单击平面文件源并选择“显示高级编辑器”。在“输入和输出属性”选项卡上,展开输出列并找到包含日期的列。将设置从False更改为True

当我运行它时,包最初失败了,因为它正在丢失将该值存储到
DB\u时间戳中的精度。当我将列设置为type
DB\u TIMESTAMP2


演示包可在

上找到这可能是本地化问题?因为这在SSMS中对我有效:选择convert(日期时间,'2011年10月25日10:18:10:756PM')Derek,你能解释一下本地化的含义吗。我也可以执行sql语句,但由于某些原因,它与派生列的表达式不一样。谢谢
LongDateDesiresFastParse    Gibberish
Oct 25 2011 10:18:10:756PM  Hello world
Oct 24 2010 10:18:10:756PM  Hello 2010 world
Oct 23 2009 10:18:10:756PM  Hello 2009 world
Oct 22 2008 10:18:10:756PM  Hello 2008 world