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 :

Requête sql date


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2024
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2024
    Messages : 1
    Par défaut Requête sql date
    Bonjour,
    J'ai un champ date au format dd/mm/aaaa hh-mm-ss
    Je veux sélectionner les données d'une journée sans utiliser between 1/1/2024 00:00:01 and 1/1/2024 23:59:59... car manuel
    Je cherche une solution automatique genre avec getdate() -1
    Merci

  2. #2
    Membre chevronné Avatar de AaâÂäÄàAaâÂäÄàAaâÂäÄ
    Homme Profil pro
    db@
    Inscrit en
    Septembre 2021
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 554
    Par défaut
    mouais la recherche google était sûrement trop épuisante à faire...
    Voici une solution - il y a sûrement plus optimal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BETWEEN CAST(CAST(GETDATE() AS DATE) AS DATETIME2(0)) AND DATEADD(SECOND, -1, CAST(DATEADD(DAY, 1, CAST(GETDATE() AS DATE)) AS DATETIME2(0)))

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 650
    Billets dans le blog
    10
    Par défaut
    Voici un exemple :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    create table T1
          (  T1ID  integer     primary key
           , T1DT  char(19)    not null
          )
    insert into T1 (T1ID, T1DT)
    values (1, '12/02/2024 09-50-28')
         , (2, '28/03/2024 14-02-11')
         , (3, '28/03/2024 18-34-31')
         , (4, '30/03/2024 07-05-00')
    ;
    select T1ID
         , substring(T1DT, 01, 10) 
         , convert(date, substring(T1DT, 01, 10), 103)   
         , convert(date, getdate(), 103)
    from T1
    where  convert(date, substring(T1DT, 01, 10), 103)   
         = convert(date, getdate(), 103)


    Résultat :

    Nom : Sans titre.png
Affichages : 209
Taille : 3,1 Ko

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 176
    Par défaut
    Bonjour,

    Quand je veux trouver des lignes sur une journée entière, je fais un truc du genre dans Oracle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from t
    where col_date >= trunc(date_choisie) and col_date < trunc(date_choisie+1);
    Y'a pas un truc équivalent sur SQL Server, avec DATETRUNC par exemple?

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 650
    Billets dans le blog
    10
    Par défaut
    Le truc ici, c'est que vu que la date est de type char, on ne peut pas appliquer directement une fonction date, il faut d'abord la convertir.
    Sinon il existe en effet datetrunc() qui permet de restituer une sous partie d'une date.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 176
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Le truc ici, c'est que vu que la date est de type char, on ne peut pas appliquer directement une fonction date, il faut d'abord la convertir.
    Sinon il existe en effet datetrunc() qui permet de restituer une sous partie d'une date.
    Une date de type char, c'est une hérésie non?

Discussions similaires

  1. [AC-97] Requte SQL et MAX(date)
    Par m.semal dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/07/2013, 09h57
  2. Erreur Conception ou erreur SQL ? (><=Date()?)
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/09/2005, 23h03
  3. [java.sql.Date] format compatible tout sgbd ?
    Par djskyz dans le forum JDBC
    Réponses: 8
    Dernier message: 15/09/2004, 11h28
  4. [Date][SQL date][Format] insertion d'une heure
    Par goulime dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2004, 11h38
  5. SQL Date
    Par hamed dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/11/2003, 15h18

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