IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Récupérer et utiliser la date système du jour sous SQL


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Récupérer et utiliser la date système du jour sous SQL
    Bjr tout le monde
    Je suis nouveau dans la communauté et j'ai déjà un problème à vous poser

    Voilà j'essaie d'extraire des données d'une base de production à l'aide de l'outil SSIS de SQL Server 2005 mais j'aimerai uniquement extraire des données de la date courante alors j'exécute cette requête:
    >> SELECT * FROM bd WHERE champDate=DATESYSTJOUR

    Je sais pas comment récupérer la date système du jour et pouvoir comparer mon champ champDate avec elle.

    Merci de m'aider

    Au fait si c possible j'aimeari avoir cette date sous le format AAAAMMJJ

    bonne journée tout le monde

  2. #2
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Un appel à la fonction GetDate() puis un petit convert et c'est réglé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select cast(convert(char(8), GETDATE(), 112) as int)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2004
    Messages : 137
    Points : 188
    Points
    188
    Par défaut
    Bonjour,

    j'aurai répondu la même chose aussi.
    Par contre, une fois au format AAAAMMJJ, ton champ sera une chaîne de caractères et non plus une date.

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Jinroh77 Voir le message
    Un appel à la fonction GetDate() puis un petit convert et c'est réglé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select cast(convert(char(8), GETDATE(), 112) as int)
    Merci Jinroh
    Le pb est que je veux comparer un champ que j'extrais d'une bd avec cette date système
    une requête de la forme: SELECT *from bd WHERE champX = ????

    Que mettre à la place de ???? pour qu'il compare le contenu de champX à la date du jour(laquelle date se trouvant dans le format AAAAMMJJ)

    Merci de me proposer un code source

  5. #5
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Citation Envoyé par fossolivier Voir le message
    Merci Jinroh
    Le pb est que je veux comparer un champ que j'extrais d'une bd avec cette date système
    une requête de la forme: SELECT *from bd WHERE champX = ????

    Que mettre à la place de ???? pour qu'il compare le contenu de champX à la date du jour(laquelle date se trouvant dans le format AAAAMMJJ)

    Merci de me proposer un code source
    Euh... justement, avec l'utilisation de la fonction que j'ai donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *from bd WHERE champX = cast(convert(char(8), GETDATE(), 112) AS int)
    En étant bien d'accord que champX est bien de type int de forme aaaammdd.

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Est-ce que quelqu'un veut bien m'expliquer pourquoi une date est en fait un entier ?
    Quel intérêt (preuves à l'appui ) y'a-t-il à stocker des valeurs sous un type qui n'est pas approprié ?

    @++

  7. #7
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Jinroh77 Voir le message
    Euh... justement, avec l'utilisation de la fonction que j'ai donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *from bd WHERE champX = cast(convert(char(8), GETDATE(), 112) AS int)
    En étant bien d'accord que champX est bien de type int de forme aaaammdd.
    Merci Bien Jinroh
    Quand je l'exécute je recois l'erreur (ici en pièces jointes)

    Je sais pas si je dois d'abord créer ou définir la fonction getdate() ou une bibliothèque quelconque?
    Et le cast là il marche aussi avec decimal?(cad si mon champ champX est de type decimal?)

    Merci
    Images attachées Images attachées  

  8. #8
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Je suppose que la requête que vous lancez s'effectue sur l'AS400 via SSIS.
    La fonction GETDATE() n'existe pas dans ce cas. Il faut utiliser la fonction CURDATE().

    ++

  9. #9
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Syntaxe de curdate dans l'AS400
    Citation Envoyé par mikedavem Voir le message
    Bonsoir,

    Je suppose que la requête que vous lancez s'effectue sur l'AS400 via SSIS.
    La fonction GETDATE() n'existe pas dans ce cas. Il faut utiliser la fonction CURDATE().

    ++
    Merci bien
    Oui en effet c sur l'AS400
    Je sais pas si avec curdate c la même syntaxe à savoir: SELECT * from nombd WHERE champDate=cast(convert(char(8), curdate(), 112) as decimal) car quand je l'exécute je recois une erreur (en pièces jointes)

    Merci de me donner la bonne syntaxe de cette requête en utilisant curdate sur l'AS400

    Cordialement
    Images attachées Images attachées  

  10. #10
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Le convert ne doit pas être connu de l'AS400.
    Ne connaissant pas du tout ce système, une petite recherche de [ame="http://www.google.fr/search?q=as400+convert+date+int+yyyymmdd&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a"]ce genre[/ame] ne fais jamais de mal...
    Sinon pour plus de précision, il doit y avoir une sous-rubrique pour AS400 sur developpez

  11. #11
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    De mes souvenirs je pense qu'il faut utiliser la fonction TO_DATE().
    Essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * 
    FROM nombd 
    WHERE champDate = TO_DATE(CURDATE(), 'YYYYMMDD')
    ++

Discussions similaires

  1. Date du jour sous SQL SERVER
    Par la2002 dans le forum Développement
    Réponses: 2
    Dernier message: 30/04/2010, 16h58
  2. Réponses: 4
    Dernier message: 17/07/2009, 17h25
  3. Récupérer le format de date système
    Par tomy29 dans le forum Langage
    Réponses: 2
    Dernier message: 24/07/2007, 16h08
  4. Récupérer la date du jour sous forme d'int...
    Par Empty_body dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/03/2007, 10h38
  5. Forcer date, heure et seconde sous sql server2000
    Par sorel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/05/2005, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo