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

Développement SQL Server Discussion :

Filtrer sur getdate()


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Je produit des statistiques pour le SDIS 47.
    Inscrit en
    Avril 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Je produit des statistiques pour le SDIS 47.
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 73
    Par défaut Filtrer sur getdate()
    Bonjour,

    Dans ma clause where, lorsque je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    (APS.DT_DEBUT = convert(date,getdate()-1) 
    OR APS.DT_FIN >= convert(date,getdate()+15))
    Je récupère des dates complètement incohérentes :

    Matricule 1001
    Centre Fumel
    Groupement NE
    Début dispo 16/02/2018 19:00:00
    Date 30/01/2018 08:41:21
    Fin dispo 18/02/2018 07:00:00
    Nbre jour dispo 18

    Afin que ma requête soit utilisable, il faudrait que je récupère les agents qui se sont mis disponible depuis getdate() -1, cela me permettra de voir ceux qui éventuellement, se sont inscrits la veille, et jusqu'à une DH_Fin que je pourrai définir par une variable.

    Cordialement.

    Taz

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Le résultat que vous obtenez semble plutôt cohérent avec votre filtre : la deuxième condition est remplie.

    N'est-ce pas plutôt un AND qu'il vous faudrait en lieu et place du OR ?

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    L'addition d'une date avec un nombre n'a aucun sens... Additionnez vous des litres d'essence à des pages de roman ?

    SI vous voulez ajouter des jours à une date il faut utiliser la fonction DATEADD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    APS.DT_DEBUT = DATEADD(day, -1 CAST(getdate() AS DATE)) 
    OR APS.DT_FIN >= DATEADD(day, 15 CAST(getdate() AS DATE))
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre confirmé
    Homme Profil pro
    Je produit des statistiques pour le SDIS 47.
    Inscrit en
    Avril 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Je produit des statistiques pour le SDIS 47.
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 73
    Par défaut
    Matricule 1089
    Centre FUMEL
    Groupement NE
    Début dispo 15/02/2018 00:00:00
    Date 30/01/2018 13:07:38
    Fin dispo 16/02/2018 07:00:00
    Nbre jour dispo 16

    Désolé, cela ne fonctionne pas. Logiquement, ma date de début devrait être au 29/01/2018.
    Par contre, ce que je comprend pas, si je ne prend que :
    APS.DT_DEBUT = DATEADD(day, -1, CAST(getdate() AS DATE)) , cela fonctionne et je récupère bien que le day - 1.

    Dès que je cumule les 2, il n'arrive pas à me montrer tous les agents qui sont dans cette période.

    Résultat : Lookup Error - SQL Server Database Error: Syntaxe incorrecte vers 'CAST

    Cordialement.

    Taz

Discussions similaires

  1. Filtrer sur date
    Par pierrot67 dans le forum Débuter
    Réponses: 3
    Dernier message: 17/10/2007, 23h02
  2. [2.0.1] Filtrer sur les colonnes avec BIRT
    Par nikado dans le forum BIRT
    Réponses: 2
    Dernier message: 07/08/2007, 12h22
  3. comment Filtrer sur la date
    Par pierrot67 dans le forum Bases de données
    Réponses: 11
    Dernier message: 27/04/2007, 12h20
  4. [D7], [MS SQLSERVER], filtrer sur un champ de type entier
    Par iam dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/12/2006, 16h19
  5. Filtrer sur les données vides dans un formulaire
    Par jevany dans le forum Access
    Réponses: 7
    Dernier message: 29/05/2006, 08h50

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