Problématique
Obtenir dans un variable d’un lot SSIS le jour précédent sous le format yymmdd.
Pour avoir le jour précédent DateAdd va nous permettre de le faire, mais impossible de caster un DateAdd en string car il renvoi un DT_DBTIMESTAMP du coup on passe par un DatePart.
Code SSIS
RIGHT((DT_WSTR, 4) DatePart ("yyyy", DateAdd("day", -1, GETDATE())), 2) + RIGHT("0" + (DT_WSTR,2)DatePart("mm", DateAdd("day", -1, GETDATE())), 2) + RIGHT("0" + (DT_WSTR,2) DatePart("dd", DateAdd("day", -1, GETDATE())), 2))
Correction du code suite à la remarque de nicolasbkz.
Sinon en utilisant CONVERT au lieu de CAST : CONVERT(VARCHAR(MAX), DATEADD(DAY, -1, GETDATE()), 12)
Ca devrait passer, non ?
Oui ça passe en SQL mais la je devais alimenter une variable au sein du lot SSIS
Je ne connais pas assez SSIS pour définir ses limites, je ne m’en sers que simplement pour faire des imports/exports de données avec des fichiers pré-formatés bien comme il faut..
Mais selon le post suivant, il est possible d’utiliser des requêtes T-SQL dans des packages SSIS : http://social.msdn.microsoft.com/Forums/sqlserver/en-US/e1f00d09-3569-47b6-afda-84b0f2cfb157/ssis-convert-function?forum=sqlintegrationservices
Le problème avec le code que tu as posté, c’est que chaque 1er de chaque mois du vas avoir une erreur, il faudrait éventuellement le compléter de cette manière :
RIGHT((DT_WSTR, 4) DatePart (« yyyy », DateAdd(« day », -1, GETDATE())), 2) +
RIGHT(« 0 » + (DT_WSTR,2)DatePart(« mm », DateAdd(« day », -1, GETDATE())), 2) +
RIGHT(« 0 » + (DT_WSTR,2) DatePart(« dd », DateAdd(« day », -1, GETDATE())), 2)
Oki merci nicolasbkz j’ai fais la correction du code.
Sinon en utilisant CONVERT au lieu de CAST : CONVERT(VARCHAR(MAX), DATEADD(DAY, -1, GETDATE()), 12)
Ca devrait passer, non ?
Oui ça passe en SQL mais la je devais alimenter une variable au sein du lot SSIS
Je ne connais pas assez SSIS pour définir ses limites, je ne m’en sers que simplement pour faire des imports/exports de données avec des fichiers pré-formatés bien comme il faut..
Mais selon le post suivant, il est possible d’utiliser des requêtes T-SQL dans des packages SSIS : http://social.msdn.microsoft.com/Forums/sqlserver/en-US/e1f00d09-3569-47b6-afda-84b0f2cfb157/ssis-convert-function?forum=sqlintegrationservices
Le problème avec le code que tu as posté, c’est que chaque 1er de chaque mois du vas avoir une erreur, il faudrait éventuellement le compléter de cette manière :
RIGHT((DT_WSTR, 4) DatePart (« yyyy », DateAdd(« day », -1, GETDATE())), 2) +
RIGHT(« 0 » + (DT_WSTR,2)DatePart(« mm », DateAdd(« day », -1, GETDATE())), 2) +
RIGHT(« 0 » + (DT_WSTR,2) DatePart(« dd », DateAdd(« day », -1, GETDATE())), 2)
Oki merci nicolasbkz j’ai fais la correction du code.