gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 06:07:28 25 4
gpt4 key购买 nike

我从以下格式的文件中读取了一个字符串日期,并且出现了转换错误。

Oct 25 2011 10:18:10:756PM

我正在使用派生列将字符串转换为日期。

我在表达式中尝试了以下内容但没有成功
(DT_DBTIMESTAMP)myDate
CAST(myDate as datetime)
CONVERT(datetime, myDate) //I get parse error on this.

必须有一个简单的方法来转换这个。提前致谢。

最佳答案

详细的答案,但我不同意“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

还有一个看起来像这样的包,

Control flow

通过更改 Flat File Source 上的一项设置,我可以使包失败或不失败。

Generic data flow

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

Setting fast parse in a flat file source

当我运行它时,该包最初失败了,因为它失去了将该值存储到 DB_TIMESTAMP 中的精度。 .当我将列设置为键入 DB_TIMESTAMP2 时,我成功了

Connection Manager, advanced tab

演示包可在 https://sites.google.com/site/billfellows/home/files/FastParse.dtsx?attredirects=0&d=1 获得

关于sql-server-2008 - 在派生列中导入字符串日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com