Je suis nouveau sur SSIS et j'essaye de convertir un GetDate () en chaîne "DD-MM-YYYY". C'est l'expression que j'ai construite jusqu'à présent:
(DT_WSTR, 8) DAY( GETDATE()) + "-" + (DT_WSTR, 8) (MONTH(GETDATE()) - 1) + "-" + (DT_WSTR, 8) YEAR(GETDATE())
Le problème que j'ai, c'est Month () convertit le mois "23-4-2013" en un seul caractère lorsque je le souhaite en caractère double, comme le jour. Comment puis-je en faire un caractère double, peu importe quel mois il est?
Pour SSIS, vous pouvez aller avec:
RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , GETDATE()), 2) + "-" + (DT_STR, 4, 1252) DATEPART("yy" , GETDATE())
Écran du générateur d'expression:
Si, comme moi, vous essayez d'utiliser GETDATE()
dans une expression et que la condition apparemment déraisonnable (SSIS/SSDT me semble être un travail en cours, et non une offre raffinée) de vouloir que cette date soit insérée dans SQL Server comme date valide (type = datetime
), alors j'ai trouvé cette expression qui fonctionne:
@[User::someVar] = (DT_WSTR,4)YEAR(GETDATE()) + "-" + RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2) + "-" + RIGHT("0" + (DT_WSTR,2)DAY( GETDATE()), 2) + " " + RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()), 2) + ":" + RIGHT("0" + (DT_WSTR,2)DATEPART("mi", GETDATE()), 2) + ":" + RIGHT("0" + (DT_WSTR,2)DATEPART("ss", GETDATE()), 2)
J'ai trouvé cet extrait de code ICI