SSIS使用SSIS表达式将mmddyyyy和mm dd yyyy格式的日期转换为日期格式
SSIS convert date in mddyyyy and mmddyyyy format to date format using SSIS expression
我在一个来源中收到 MMddyyyy
和 Mddyyyy
格式的日期,如果月份有 1-9 位数字,则月份为 1 位数字,如果月份在 10 之间-12 它的 2 位数字,我需要一个能够将它们转换为日期格式的 SSIS 表达式。
ex 2051994
或 12051994
两者来自同一来源,但很难使用相同的 SSIS 表达式进行转换
最简洁的方法是规范化输入格式,然后照常将其转换为您选择的格式的数据。为了规范化输入,即每个月的长度都相同,您可以使用以下表达式添加 Derived Column
转换:
RIGHT("0" + yourinputdate,8)
如果输入日期是整数而不是字符串,您可以这样做:
RIGHT("0" + (DT_STR,8,1252)(yourinputdate),8)
使用上述表达式12051994将保持不变,但2051994将转换为02051994。
从下游的这个转换中,您可以将字符串转换为您喜欢的格式,或者您可以在同一个转换中完成所有操作,尽管这会使表达式有点不可读。
您可以使用以下表达式将 Mddyyy
和 MMddyyyy
字符串转换为 DateTime 值:
(DT_DATE)(RIGHT("0000" + RIGHT(RIGHT("0" + [DateColumn],8),4),4) +
"-" + RIGHT("00" + LEFT(RIGHT("0" + [DateColumn],8),2),2) +
"-" + RIGHT("00" + SUBSTRING(RIGHT("0" + [DateColumn],8),3,2),2))
我在一个来源中收到 MMddyyyy
和 Mddyyyy
格式的日期,如果月份有 1-9 位数字,则月份为 1 位数字,如果月份在 10 之间-12 它的 2 位数字,我需要一个能够将它们转换为日期格式的 SSIS 表达式。
ex 2051994
或 12051994
两者来自同一来源,但很难使用相同的 SSIS 表达式进行转换
最简洁的方法是规范化输入格式,然后照常将其转换为您选择的格式的数据。为了规范化输入,即每个月的长度都相同,您可以使用以下表达式添加 Derived Column
转换:
RIGHT("0" + yourinputdate,8)
如果输入日期是整数而不是字符串,您可以这样做:
RIGHT("0" + (DT_STR,8,1252)(yourinputdate),8)
使用上述表达式12051994将保持不变,但2051994将转换为02051994。
从下游的这个转换中,您可以将字符串转换为您喜欢的格式,或者您可以在同一个转换中完成所有操作,尽管这会使表达式有点不可读。
您可以使用以下表达式将 Mddyyy
和 MMddyyyy
字符串转换为 DateTime 值:
(DT_DATE)(RIGHT("0000" + RIGHT(RIGHT("0" + [DateColumn],8),4),4) +
"-" + RIGHT("00" + LEFT(RIGHT("0" + [DateColumn],8),2),2) +
"-" + RIGHT("00" + SUBSTRING(RIGHT("0" + [DateColumn],8),3,2),2))