1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

DEMANDE Requete sur des heures

Discussion dans 'Base de donnés & HFSQL' créé par akzo81, Oct 1, 2019.

  1. akzo81

    akzo81 Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    47
    J'aime reçus:
    24
    Bonjour a tous
    Exemple de recherche sur le mois de septembre :

    SELECT * FROM [MaTable] WHERE Data BETWEEN '01/09/19' AND '30/09/19'

    La requête fonctionne mais ne renvois pas les bons résultats.

    Le champ Data de [MaTable] est de type texte au format JJ/MM/AA

    Meme avec dateverschaine(monCalendrier,"JJ/MM/AA" la requête n'est pas valable mais fonctionne sans erreur
    SELECT * FROM [MaTable] WHERE Data BETWEEN '"+dateverschaine(monCalendrierdatedebut,"JJ/MM/AA)"+"' AND '"+dateverschaine(monCalendrierdateFIn,"JJ/MM/AA"+"'"

    Avez vous une idée pour avoir que les valeurs entre ces deux dates.

    Cordialement.
     
    Tags:
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,884
    J'aime reçus:
    1,532
    salut

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    essai
    SELECT * FROM [MaTable] WHERE Data BETWEEN '20190901' AND '20190930'
     
  3. Tidus57

    Tidus57 New Member

    Inscrit:
    Sept 20, 2019
    Messages:
    2
    J'aime reçus:
    0
    Salut

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,

    Si tu veux utiliser t'es variables de type date n'essaye pas de les convertir en format "JJ/MM/AA".
    Le format des dates dans les tables est "AAAAMMJJ" et les variables de type date ou les champs calendriers retournent déjà les dates au bon format.
     
  4. akzo81

    akzo81 Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    47
    J'aime reçus:
    24
    Oui le champ calendrier retourne bien des dates au format AAAAMMJJ, le problème c'est que les données que je voudrais utiliser son au format texte dans une table sur sqlserveur. Les données sont "JJ/MM/AA" donc une chaîne pour moi.Donc vous pensez que juste de faire SELECT * FROM [MaTable] WHERE Data BETWEEN '20190901' AND '20190930' avec ma colonne Data "jj/MM/AA" suffirais.Je n'ai pas la possibilité de changer le format sur le serveur. Demain j'essais votre proposition mais il me semble que la requete fonctionne et ne retourne rien.
    Cordialement.
     
  5. PhantomX

    PhantomX Member

    Inscrit:
    Juil 11, 2018
    Messages:
    78
    J'aime reçus:
    61
    si tu veux faire un tri au format JJ/MM/AA ça ne retournera jamais la bonne chose.

    01/01/99 < 02/01/01 tout simplement car le 2e caractère trier est le 1 et 2 même si l'année est plus petite dans la 2e date

    si tu veux vraiment faire des trie et que dans ta table sql c'est VRAIMENT du texte et nom une date affiché au format JJ/MM/AA
    et bien tu vas devoir faire une convertion

    ton where devrait ressembler à ceci selon moi

    WHERE (Mid(Data, 7, 2) + Mid(Data, 3, 2) + Left(Data, 2)) BETWEEN '190901' AND '190930'

    Et idéalement une année ne devrait pas être jamais être sur 2 caractère mais bien sur 4 de peur du bug de l'an 2000 :p
    Donc ton where devrait plutôt être


    WHERE ('20' + Mid(Data, 7, 2) + Mid(Data, 3, 2) + Left(Data, 2)) BETWEEN '20190901' AND '20190930'
    à noter que le '20' devrait être une fonction qui te retourne réellement le bon millénaire

    Attention aussi que le format soit pas une Dateheure ce qui encore là peut cause des problème côté trie (retourne AAAAMMJJHHmmSSCC)

    un left(Data, 8) pour récupéré juste la date et non l'heure peut être nécessaire
     
  6. akzo81

    akzo81 Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    47
    J'aime reçus:
    24
    après plusieurs essais j'ai noté après mon WHERE CONVERT(CAST(Data as date),:relievedface: >='date_debut' AND CONVERT(CAST(Data as date),:relievedface:<='date_FIn' .La requête a fonctionné
     

Partager cette page

Chargement...