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

  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 : 52
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2024
    Messages : 1
    Points : 1
    Points
    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 expérimenté Avatar de AaâÂäÄàAaâÂäÄàAaâÂäÄ
    Homme Profil pro
    db@
    Inscrit en
    Septembre 2021
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 452
    Points : 1 301
    Points
    1 301
    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 136
    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 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    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 : 86
Taille : 3,1 Ko

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 138
    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 138
    Points : 1 918
    Points
    1 918
    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 136
    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 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    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 chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 138
    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 138
    Points : 1 918
    Points
    1 918
    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?

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    ça va sans dire !

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    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 : 21 772
    Points : 52 735
    Points
    52 735
    Billets dans le blog
    5
    Par défaut
    Je suis en audit sur le modèle de données d'un éditeur de logiciel.... pas des moindres... bilan 3607 colonnes date sous forme de chaines de caractères !!!

    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/ * * * * *

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

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 452
    Points : 1 301
    Points
    1 301
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Je suis en audit sur le modèle de données d'un éditeur de logiciel.... pas des moindres... bilan 3607 colonnes date sous forme de chaines de caractères !!!
    j'espère qu'elles respectent au moins le même formatage !
    Au Canada, entre le format de date «courant» (31/10/2022) et celui américain (10/31/2022), la chaine de caractères est la porte ouverte pour des données incohérentes.

  10. #10
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    Je ne sais pas ce qu'on enseigne dans les écoles d'informatique, mais vu le nombre de fois où l'on trouve des dates de type char, des varchar très courts (typiquement varchar(1) !) et pire, des PK fonctionnelles et instables, il y aurait beaucoup de choses à revoir dans les programmes !
    L'un des clients chez lesquels j'interviens utilise un logiciel du marché dans lequel aucune date n'est de type date et tous les identifiants sont des multicolonnes fonctionnelles de type varchar long
    En 2024, nous en sommes encore là...

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

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 452
    Points : 1 301
    Points
    1 301
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    L'un des clients chez lesquels j'interviens utilise un logiciel du marché dans lequel aucune date n'est de type date et tous les identifiants sont des multicolonnes fonctionnelles de type varchar long
    En 2024, nous en sommes encore là...
    J'avais vu ça dans un gros CRM où le modèle de données ressemblait très fort à une migration automatique d'oracle vers SQL Server, d'où des «choix» de type de données complètement débiles.

  12. #12
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    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 : 21 772
    Points : 52 735
    Points
    52 735
    Billets dans le blog
    5
    Par défaut
    On avait fait un SQL frog sur les pires choses que l'on avait vu dans les bases de données de SQL Server.... la vidéo doit peut-être être encore en ligne...

    https://www.datafrogs.org/blog/dataf...erverNostalgie

    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/ * * * * *

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