• Passer à la navigation principale
  • Passer au contenu principal
  • Passer à la barre latérale principale
  • Passer au pied de page
Hotfirenet

Hotfirenet

le blog d'un papa Geek

  • Actualités info
  • Domotique
    • Jeedom
  • Catégories
    • Comment faire
    • Développement
    • Edito
    • Multimédia
    • Retour d’expérience

Obtenir le jour précédent pour un lot SSIS

SSIS

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.

À propos Djo

Autodidacte, curieux et motivé.

Interactions du lecteur

Commentaires

  1. nicolasbkz dit

    30 janvier 2014 à 13 h 01 min

    Sinon en utilisant CONVERT au lieu de CAST : CONVERT(VARCHAR(MAX), DATEADD(DAY, -1, GETDATE()), 12)

    Ca devrait passer, non ?

    Répondre
    • Djo dit

      31 janvier 2014 à 8 h 31 min

      Oui ça passe en SQL mais la je devais alimenter une variable au sein du lot SSIS

      Répondre
      • nicolasbkz dit

        31 janvier 2014 à 9 h 15 min

        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)

        Répondre
        • Johan dit

          31 janvier 2014 à 15 h 00 min

          Oki merci nicolasbkz j’ai fais la correction du code.

          Répondre
  2. nicolasbkz dit

    30 janvier 2014 à 13 h 01 min

    Sinon en utilisant CONVERT au lieu de CAST : CONVERT(VARCHAR(MAX), DATEADD(DAY, -1, GETDATE()), 12)

    Ca devrait passer, non ?

    Répondre
    • Djo dit

      31 janvier 2014 à 8 h 31 min

      Oui ça passe en SQL mais la je devais alimenter une variable au sein du lot SSIS

      Répondre
      • nicolasbkz dit

        31 janvier 2014 à 9 h 15 min

        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)

        Répondre
        • Johan dit

          31 janvier 2014 à 15 h 00 min

          Oki merci nicolasbkz j’ai fais la correction du code.

          Répondre

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Barre latérale principale

Catégories

  • Actualités info
  • At-Home
  • Bon plan
  • Comment faire
  • Développement
  • Domotique
  • Edito
  • High-Tech
  • Jeedom
  • Multimédia
  • Open-Source
  • Retour d’expérience
Infomaniak, l'hebergeur vert

Footer

A PROPOS

Hotfirenet.Com est un blog Geek et High-Tech qui touche au développement informatique, nouvelles technologies, Web, domotique, drones, impression 3D .... En savoir plus…

Djo: Afficher mes articles de blog

PSSST, et si on bossait ensemble ?

Mes compétences ? Le web et le développement informatique. Besoin d’un développement de sites web ? de rédaction de contenu web, d’une expertise en SEO et médias sociaux ? Ou bien vous souhaitez me proposer un partenariat ?

Tous droits réservés © 2022

  • Mentions légales
  • Contact