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 :

[SQL2005] Date maximum a la seconde près


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 66
    Par défaut [SQL2005] Date maximum a la seconde près
    Bonjour à tous,

    J'ai un petit problème bête mais je n'arrive pas à la corriger J'ai un champ datetime nommé "Date of Entry" et je fais une requête SQL demandant la plus récente, soit MAX([Date of entry]) Le seul problème c'est que si deux entrées ont étées effectuées dans la même journée, les deux sont retournées alors que je veux seulement la plus récente. Comment puis-je régler cela?

    merci!

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut pourquoi pas cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP 1  DATE FROM TABLE ORDER BY DATE

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 66
    Par défaut
    Bon je voulais simplifier ma question pour que ce soit facile mais je crois que ce sera plus simple si je copie ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT     ta1.Location, ta1.GSDC_Name, ta1.PA_Name, ta1.CA_Name, ta1.[Year], ta1.Availibility_ID, ta1.[Date of entry], ta1.Description, ta1.Username, 
                          ta1.[Week of Availability]
    FROM         dbo.VIEWLatestYear ta1 INNER JOIN
                              (SELECT     Location, GSDC_Name, PA_Name, CA_Name, [Week of Availability] AS [Week], MAX([Date of entry]) AS [Date of entry]
                                FROM          dbo.VIEWLatestYear ta2
                                WHERE      DATEPART(ww, GETDATE()) - DATEPART(ww, [Date of entry]) < 3 AND DATEPART(yyyy, GETDATE()) = DATEPART(yyyy, [Date of entry])
                                GROUP BY Location, GSDC_Name, PA_Name, CA_Name, [Week of Availability]) tmp ON ta1.Location = tmp.Location AND 
                          ta1.GSDC_Name = tmp.GSDC_Name AND ta1.PA_Name = tmp.PA_Name AND ta1.CA_Name = tmp.CA_Name AND 
                          ta1.[Week of Availability] = tmp.Week AND ta1.[Date of entry] = tmp.[Date of entry]
    J'ai mis en gras le problème... Dans ce cas-ci, TOP ne fonctionne pas, du moins je n'ai pas trouvé comment... Ne peut-on pas seulement dire le MAX à la seconde près d'un champ datetime?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut
    J'ai un petit problème bête mais je n'arrive pas à la corriger J'ai un champ datetime nommé "Date of Entry" et je fais une requête SQL demandant la plus récente, soit MAX([Date of entry]) Le seul problème c'est que si deux entrées ont étées effectuées dans la même journée, les deux sont retournées alors que je veux seulement la plus récente. Comment puis-je régler cela?
    si la date est exactement la meme, tu peux faire un DISTINCT, si la date est differente, le max doit te renvoyer la plus grande.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Par défaut
    bonjour,

    ce n'est pas dû au group by ? peux-tu poster un exemple de résultat ?
    merci

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Par défaut
    Bonjour,

    Ma question sera simple.
    comment as tu stocké ta date ???
    je suppose que tu as uniquement stocké la date en "AAAA-MM-JJ" sans tenir compte de l'heure ? reagarde dans ta table.

    si c'est le cas, faudrait que tu change ca pour qu'il le stock au format "AAAA-MM-JJ HH:MM:SS".

    bien à vous.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 66
    Par défaut
    Oui j'ai vérifié et la date prend bien en compte l'heure et même les secondes. Cependant un changement dans les besoin font que j'ai du tout changer, mais je fais face à un problème différent maintenant.... je vais l'écrire dans un autre post

    Merci quand même à tous pour votre aide

Discussions similaires

  1. différence entre 2 dates en jours minutes secondes
    Par jeanfi77 dans le forum Requêtes
    Réponses: 5
    Dernier message: 19/08/2009, 16h01
  2. Calculer date depuis nombre de secondes
    Par Piano dans le forum C
    Réponses: 3
    Dernier message: 02/12/2007, 15h54
  3. [HIBERNATE] date sans heure minute seconde
    Par _juel_ dans le forum Hibernate
    Réponses: 1
    Dernier message: 30/06/2006, 14h43
  4. récupérer ligne date maximum
    Par StIcK dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/01/2006, 01h51
  5. Réponses: 8
    Dernier message: 05/05/2004, 12h30

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