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

Langage SQL Discussion :

Requête en fonction d'un jour de la semaine


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut Requête en fonction d'un jour de la semaine
    Bonjour,

    J'ai besoin de faire une requête sql pour ramener des informations en fonction d'un jour de la semaine.

    Ex: tous les enregistrement des mardi de chaque semaine sur une année.

    La fonction getcalendar ne semble pas exister

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 091
    Points : 28 362
    Points
    28 362
    Par défaut
    Il n'existe pas de fonction dans le standard SQL pour connaître le jour de la semaine correspondant à une date.
    Il est indispensable que tu précises avec quel SGBD tu travailles.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Désolé pour le SGBD. C'est de l'Oracle.

    Il n'existe pas une solution de contournement ?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 091
    Points : 28 362
    Points
    28 362
    Par défaut
    La fonction DAYOFWEEK(<expression_date>), spécifique à Oracle, retourne le jour de la semaine sous la forme d'une valeur numérique comprise entre 1 et 7 où 1 est le dimanche
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Merci je vais tester ça.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Ca pas l'air de fonctionner:

    "dayofweek identificateur non valide"

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 091
    Points : 28 362
    Points
    28 362
    Par défaut
    Quelle version d'Oracle ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    DayOfWeek ce n'est pas de l'Oracle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(<votre_date>, 'D')

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Le plus performant risque d'être de créer une table calendrier.

    SQLpro a écrit des articles à ce sujet.
    Cordialement
    Soazig

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    J'ai pensé à une autre idée qui me permettrait de faire mes stats.

    Moins automatique c'est sûr ! Mais bon...

    Sous Excel, j'ai récupéré la liste des "Mercredi de l'année 2009.

    Par contre, j'ai besoin de faire mon test sur cette date.

    Dans ma base, les dates sont au format (DD/MM/YYYY HH:MM:SS).

    Donc il faut que je fasse un "to_date" mais mon "in" ne fonctionne pas. J'ai dû faire une erreur.

    Voici ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select count(*) from appel where d_appel in to_date('01/01/2009','07/01/2009','14/01/2009','21/01/2009','28/01/2009','04/02/2009',
    '11/02/2009','18/02/2009','25/02/2009','04/03/2009','11/03/2009','18/03/2009','25/03/2009','01/04/2009','08/04/2009','15/04/2009','22/04/2009','29/04/2009','06/05/2009','13/05/2009','20/05/2009','27/05/2009','03/06/2009','10/062009','17/06/2009','24/06/2009','01/07/2009','08/07/2009','15/07/2009','22/07/2009','29/072009','05/08/2009','12/08/2009','19/08/2009','26/08/2009','02/09/2009','09/09/2009',
    '16/09/2009','23/09/2009','30/09/2009',
    '07/10/2009','14/10/2009','21/10/2009',
    '28/10/2009','04/11/2009','11/11/2009',
    '18/11/2009','25/11/2009','02/12/2009',
    '09/12/2009','16/12/2009','23/12/2009',
    '30/12/2009'),'DD/MM/YYYY')
    Merci de votre aide.

  11. #11
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Vous vous compliquez beaucoup trop la vie.
    Vous voulez des informations sur 2009 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(d_appel, 'YYYY') = '2009'
    Vous voulez les mardis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    and to_char(d_appel, 'D') = '2'
    Et vous pouvez même combiner les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(d_appel, 'YYYYD') = '20092'

  12. #12
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 091
    Points : 28 362
    Points
    28 362
    Par défaut
    Citation Envoyé par Waldar Voir le message
    DayOfWeek ce n'est pas de l'Oracle.
    En effet, et je suis incapable de retrouver où j'ai trouvé ça
    Mais je suis certain que c'était sur le site d'oracle
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Points : 33
    Points
    33
    Par défaut
    Il faut utiliser to_char(maDate, 'D') = 2

    Pour tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select to_char(to_date('2010/03/29','YYYY/MM/DD'),'D') from dual;
    select to_char(to_date('2010/03/30','YYYY/MM/DD'),'D') from dual;
    La première requête est un lundi cela donne 1.
    La deucième requête est un mardi, cela donne 2.

    ____________________________________________________________

    http://seekaftersomething.over-blog.com

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/04/2008, 16h53
  2. [Dates] fonction vérifiant le jour de la semaine
    Par Flynt dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2008, 16h04
  3. fonction pour le jour de la semaine
    Par savoir dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/06/2005, 18h24
  4. [...] doit utiliser une requête qui peut être mise à jour
    Par requiemforadream dans le forum ASP
    Réponses: 4
    Dernier message: 26/04/2005, 09h12
  5. [Petite requête] Nombre de transactions par jour
    Par Braim dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2003, 10h53

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