2010-06-30 6 views
3

Je souhaite convertir une date au format ISO et l'utiliser comme chaîne dans une expression dans SSIS.SSIS - Convertir une date à utiliser dans une expression

C'est ce que je tape dans T-SQL

select convert(varchar(8), GetDate(), 112) 

et ce que je reviens

20100630 

Mon but - est de créer un dossier d'archivage en fonction de la date. J'ai la tâche de système de fichiers partie de la création d'un dossier trié, je peux le faire ... Je dois juste être capable de Cast la date à une chaîne, afin que je puisse l'utiliser.

Merci d'avance.

Répondre

2

Vous aurez besoin d'ajouter une expression:

RIGHT((DT_WSTR, 4) DATEPART("yyyy", GetDate()), 4) + 
RIGHT("0" + (DT_WSTR,2)DatePart("mm", GetDate()), 2) + 
RIGHT("0" + (DT_WSTR,2)DatePart("dd", GetDate()), 2) 

Cette expression va créer le résultat que vous recherchez.

+0

correcte. cela a renvoyé 100630, mais j'ai changé le, 2 à un, 4 sur la première ligne, et j'ai obtenu 20100630, ce qui est exactement ce que je voulais. Donc, vous obtenez une tape dans le dos, et la réponse acceptée. – cometbill

+0

@Cometbill: mon erreur. Avoir corrigé la réponse. –

2

Dans SSIS, vous utiliseriez le casting DT_STR ou DT_WSTR pour accomplir. Quelques exemples sont

(DT_STR, 4, 1252)YEAR(GETDATE()) + 
RIGHT("0" + (DT_STR, 2, 1252)MONTH(GETDATE()), 2) + 
RIGHT("0" + (DT_STR, 2, 1252)DAY(GETDATE()), 2) 

ou

(DT_WSTR, 4)YEAR(GETDATE()) + 
RIGHT("0" + (DT_WSTR, 2)MONTH(GETDATE()),2) + 
RIGHT("0" + (DT_WSTR, 2)DAY(GETDATE()), 2) 

Voir le MSDN documentation pour plus d'informations.

3

question ancienne, réponse mieux euh, du commentaire de Adrian here:

Essayez une transtypage intermédiaire en type DT_DBDATE. L'association à WSTR donne une chaîne au format "AAAA-MM-JJ", qui est facilement rangea:

REPLACE ((DT_WSTR, 200) (DT_DBDATE) GETUTCDATE(), "-", "")

ou l'utilisation sans REPLACE pour obtenir le PRESQUE YY-MM-DD

Questions connexes