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

Développement SQL Server Discussion :

Trouver le bon ID en référence à une plage horaire


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Trouver le bon ID en référence à une plage horaire
    Bonjour,

    Je cherche à sélectionner le bon ID suivant l'heure actuelle de la machine sur une table comme celle-ci.




    J'ai bien ceci mais cela ne semble pas fonctionner..

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    declare @heure varchar(20)
    set @heure = '01:26:00'
     
     
    				select vue.HOR_ID from 
    									(select * from [dbo].[OEE_Horaire_Production] 
    											where hor_jour_sem = DATENAME(weekday,getdate()) And hor_site = '5' and HOR_DEBUT_POSTE <= @heure 
    													or
    													hor_jour_sem = DATENAME(weekday,getdate()) And hor_site = '5' and HOR_FIN_POSTE >= dateadd(day,1,@heure) 
    									) vue
     
     
    						where vue.HOR_DEBUT_POSTE >= @heure or HOR_FIN_POSTE >= @heure


    La variable @HEURE est juste là pour simuler l'heure de la machine..

    Merci pour votre aide...

  2. #2
    Membre averti
    Bonjour bonjour,

    Tout d'abord, comparer des DATES, il est bien d'avoir le même format, comparer "2019-11-13 09.57.00" à "09.48.00" c'est un peu comme additionner des pommes à des tomates (on a tous eu un prof de math nous disant que ça ne se faisait pas...) donc prendre un même format aidera à la lisibilité et au calcul.

    Ensuite, pourquoi passer par une sous requête ? Je dois être bête mais je ne comprends pas l’intérêt de ce filtre
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    where vue.HOR_DEBUT_POSTE >= @heure


    Si votre but est tout simplement de faire un "entre heure début et heure fin", un between n'est-il pas bon ?

    Bisous bisous

  3. #3
    Membre habitué
    Bonjour,

    Merci pour cette réponse.
    Donc, il s'agit de trouver le bon ID en se référent à l'heure de la machine éxécutant la requette (la requette fournie n'est qu'un brouillon ou approche puisque elle ne fonctionne pas). Si on regarde attentivement la table (ou plutot la colonne), la date est à 1900-01-01. Car la date importe peu puisque c'est l'heure qui m'intéresse..
    Mon souci est que si on éxécute la requete à 22h, le résultat est bon : ID = 13, puisqu'il est plus que 21h00 est moins de 4h59.. mais s'il est 01h00 du matin (le lendemain) .. marche plus ! l'ID retourné est le suivant, le 14...

    Merci pour votre aide..

  4. #4
    Expert éminent
    Citation Envoyé par guilld Voir le message
    Car la date importe peu puisque c'est l'heure qui m'intéresse..
    Prenez le bon type de données alors ! Vous connaissez TIME ???
    les règles du forum - mode d'emploi du forum
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    JE NE RÉPONDS PAS aux questions techniques par message privé.

  5. #5
    Membre habitué
    Merci pour cette réponse.

    TIME ou pas TIME, le fait de passer minuit, nous ne somme plus le même jour (la machine passe de mercredi à jeudi donc 01h00 du matin ne correspond plus à mercredi. ).. ca c'est un fait.. pourtant, j'aimerai bien que la requete me trouve bien l'ID correspondant (celui de mercredi) même si en vrai on est jeudi . bref je n'y arrive pas.

###raw>template_hook.ano_emploi###