我有一个字符串日期从文件中读入,格式如下,并给我施法错误。
Oct 25 2011 10:18:10:756PM
我正在使用Derived Column将字符串转换为日期。
我在表达式中尝试了以下内容但没有成功
(DT_DBTIMESTAMP)myDate
CAST(myDate as datetime)
CONVERT(datetime, myDate) //I get parse error on this.
必须有一种简单的方法来施放它。提前谢谢。
答案 0 :(得分:3)
详细答案但我不同意“SSIS是否无法识别问题中提供的日期格式。”
也许如果它被重述为“SSIS无法在没有帮助的情况下识别所提供的日期格式”。在这种情况下的根本问题是,默认情况下,日期和数字解析例程是locale aware。一般来说,这是一件好事,除非它不是。当我以ccyymmdd从大型机上下来的格式处理日期时,我首先偶然发现了这个问题。正如其他人所指出的,它将在tsql中解析,为什么不解析SSIS?有很多文章主张切片和切割字符串数据,使其成为一个有效的日期时间,但为什么要经历所有麻烦?
将此作为样本输入数据(制表符分隔)。
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
一个看起来像这样的包,
通过更改Flat File Source上的一个设置,我可以使包失败。
右键单击Flat File Source并选择“Show Advanced Editor”。在“输入和输出属性”选项卡上,展开“输出列”并查找包含日期的列。将FastParse设置从False更改为 True 。
当我运行它时,软件包最初失败了,因为它丢失了将该值存储到DB_TIMESTAMP
的精度。当我将列设置为DB_TIMESTAMP2
https://sites.google.com/site/billfellows/home/files/FastParse.dtsx?attredirects=0&d=1
提供的演示包