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 date year-MM-dd HH:MM


Sujet :

MS SQL Server

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Formatage date year-MM-dd HH:MM
    Bonjour

    Je suis souvent étonné par la pauvreté des moyens offerts par SQL Server pour formater une date
    Ou alors c'est moi qui ai des difficultés a trouver une information claire

    En l'occurence je voudrais formater une date dans le format
    yyyy-MM-dd HH:mm

    J'ai bricolé l'infame truc ci dessous :
    Il n'y a rien de plus rationnel ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 
       CAST(CAST(GETDATE() AS DATE) AS VARCHAR) + ' '+
       CAST(DATEPART(hour,GETDATE()) AS VARCHAR) + ':'+ 
       CAST(DATEPART(minute,GETDATE()) AS VARCHAR)  AS 'Date HH:MM'
    Merci de votre aide
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  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 766
    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 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    T'es pas doué !!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONVERT(CHAR(16), GETDATE(), 121)
    J'ai plus l'impression que c'est ton cerveau qui est pauvre que SQL Server...

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

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut SQL Pro

    N'implique pas mon cerveau dans ces bricolages s'il te plait

    Ta methode est plus concise certe !
    Et la mienne est pataude j'en conviens !

    Mais mon cerveau a la recherche d'une methode rationelle avait loupé ce subterfuge de prendre les 16 premiers caracteres d'une date convertie en chaine !

    En cSharp et meme en MySql tu as des methode de formatage explicite :

    CSharp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date.Tostring("yyyy-MM-dd HH:mm");
    MySql (si mes souvenirs sont bon)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_FORMAT(date,'%y-%m%d %H:%i')
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    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 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    La seule différence c'est la rapidité... Appliquer un masque de formatage générique sur des millions de lignes peut coûter TRES CHER !!!!
    En cette matière MySQL est champion de la lenteur des requêtes.. C'est donc un bon exemple que de montrer que ça soit-disante souplesse le rend naturellement lent !
    C'est pourquoi ces codes de formatage correspondent en interne à des procédures optimisées.

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

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Ok

    Quand il s'agit de performance, je m'incline
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  6. #6
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Pour info olibara,

    Sur SQL Server 2012, la fonction FORMAT() te permet de présenter ta date exactement comme en .NET.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select FORMAT(getdate(), 'yyyy-MM-dd HH:mm')

  7. #7
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci beaucoup Oishiii

    Il faut voir maintenant si cette nouvelle methode peut faire perdre de la performance comme le suggere SQLPro
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Sauf erreur de ma part des informations complètes sur le formatage des dates existent dans l'aide du logiciel client Query Analyzer (ou analyseur de requête) de SQL Server.
    La syntaxe fourni par SQLpro y est décrite et on peut y trouver un tableau qui donne les correspondances du paramètre de conversion de la date en modifiant la valeur ici en rouge
    SELECT CONVERT(CHAR(16), GETDATE(), 121)

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

Discussions similaires

  1. Formatage date Fonction
    Par jdotti dans le forum Oracle
    Réponses: 6
    Dernier message: 27/06/2007, 13h57
  2. [Dates] Formatage date majuscule
    Par jfrsm dans le forum Langage
    Réponses: 4
    Dernier message: 08/05/2007, 18h22
  3. Réponses: 8
    Dernier message: 07/03/2007, 08h34
  4. pb formatage date
    Par clairette dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2006, 13h05
  5. formatage dates heures
    Par leglofeur dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/12/2005, 09h37

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