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 :

formatage particulier d'une date


Sujet :

MS SQL Server

  1. #1
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut formatage particulier d'une date
    Bonjour à tous,

    j'utilise la requête ci-dessous pour extraire des temps d'une BDD.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TOP(10) ID, LIB, PAYS, PRENOM,NOM , 
    CONVERT(varchar(2),DATEPART(n,temps)) + ' Min ' + CONVERT(varchar(2),DATEPART(s,temps)) 'TEMPS'
    FROM TTemps ORDER BY TEMPS
    ces temps sont exprimés en minutes et secondes comme vous pouvez le voir.

    Le problème que je rencontre se situe au niveau des secondes, lorsque le temps en base est de type 0:30, 1:20, etc. La requete me renvoie en effet une date formatée comme cela: 0 Min 3, 1 Min 2.
    Probleme que je n'ai pas pour des temps de type 0:32, 1:23.

    Comment puis-je recuperer l'intégralité des secondes?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 850
    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 850
    Points : 52 984
    Points
    52 984
    Billets dans le blog
    6
    Par défaut
    Intéressez vous aux fonctions REPLICATE et LEN.

    A +

  3. #3
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    merci pour cette indication.
    Je ne suis pas parvenu à trouver la manière dont je pouvais articuler ma requète avec le replicate. Quant au LEN, je me doute qu'il doit me permettre de tester la longueur de la chaine retournée, mais je ne sais pas comment effectuer un test dans ma requète.

    Pourriez vous m'en dire un peu plus et m'aiguiller ?

    Merci et bonne soirée

  4. #4
    Membre éprouvé
    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
    Points : 1 216
    Points
    1 216
    Par défaut
    Bonjour,

    essayez avec case


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TOP(10) ID, LIB, PAYS, PRENOM,NOM , 
    case when len(DATEPART(n,temps))=1 then '0'+CONVERT(varchar(2),DATEPART(n,temps)) else CONVERT(varchar(2),DATEPART(n,temps)) end + ' Min ' + case when len(DATEPART(s,temps))=1 then '0'+CONVERT(varchar(2),DATEPART(s,temps))  else CONVERT(varchar(2),DATEPART(s,temps)) end 'TEMPS'
    FROM TTemps ORDER BY TEMPS
    C'est peu élégant mais ça doit répondre à votre soucis. La commande CASE permet de faire bcp de choses (utilisable dans les clauses WHERE & ORDER BY également)

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Merci beaucoup,

    je ne connaissais absolument le case en SQL, voila qui va effectivement me reservir.
    De plus la requete proposée correspond à ce que je recherchais.

    Je l'ai adaptée à mes besoins car j'avais simplifié la requete mais c'est parfait.

    Merci beaucoup

    @SQLPro: je ne suis pas parvenu a utiliser la fonction replicate, auriez vous un exemple concret d'utilisation ?

    Merci beaucoup et bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formatage d'une date a l'aide d'expression réguliere
    Par sunshine2004 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/04/2008, 22h45
  2. Formatage de la semaine d'une date
    Par Kloun dans le forum Access
    Réponses: 3
    Dernier message: 17/01/2007, 18h28
  3. Formatage d'une date de MySQL
    Par Mister Nono dans le forum Requêtes
    Réponses: 3
    Dernier message: 17/07/2006, 08h24
  4. [C# 2.0] Formatage spéciale d'une date et de l'heure.
    Par Pierre8r dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/05/2006, 19h40
  5. [Dates] formatage d'une date
    Par illegalsene dans le forum Langage
    Réponses: 4
    Dernier message: 02/02/2006, 18h10

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