我在ETL過程中工作,在表varchar中有一列,數據爲28JUN1952
。 這將始終採用此格式,即日期爲2位數字,月份爲3個字母,年份爲4位數字。ETL中的數據轉換SSIS
我能夠將它轉換成日期列,我需要這個來yyyyMMdd
格式,即變成19520628
。我可以將月份和日期分開,但如果月份是1位數字,則無法在本月添加填充。 Jan
或Feb
。
是否有任何其他方式來轉換數據格式或任何其他替代方法來添加填充?
我只需要在SSIS中進行轉換。
我在ETL過程中工作,在表varchar中有一列,數據爲28JUN1952
。 這將始終採用此格式,即日期爲2位數字,月份爲3個字母,年份爲4位數字。ETL中的數據轉換SSIS
我能夠將它轉換成日期列,我需要這個來yyyyMMdd
格式,即變成19520628
。我可以將月份和日期分開,但如果月份是1位數字,則無法在本月添加填充。 Jan
或Feb
。
是否有任何其他方式來轉換數據格式或任何其他替代方法來添加填充?
我只需要在SSIS中進行轉換。
,最快的途徑是增加一個腳本轉換。
內部腳本任務
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
DateTime x = DateTime.MinDate;
if (DateTime.TryParse(Row.srcDate, out x))
{
Row.ccyymmdd = x.ToString("yyyyMMdd");
}
else
{
// Handle NULL values however you wish
// Assign "known bad value"
// Row.ccyymmdd = "99991231";
// Or set the null property to true (preferred)
Row.ccyymmdd_IsNull = true;
}
}
太棒了。萬分感謝。 – 2012-07-24 08:08:04
試試這個:
declare @d varchar(20)='28JAN1952';
SELECT replace(CONVERT(date,RIGHT(@d,4)+SUBSTRING(@d,3,3)+LEFT(@d,2)),'-','')
我無法在那裏添加SQL命令。我需要一些SSIS轉換。 – 2012-07-24 06:10:41
你能後你有這麼遠的公式? – 2012-07-24 07:09:25