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 :

[T-SQL] Quand le type DateTime remonte le temps...


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de NeoMan
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 171
    Par défaut [T-SQL] Quand le type DateTime remonte le temps...
    Bonjour à tous !

    Petite expérience :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DECLARE @MaDate AS DATETIME
     
    SET @MaDate = 2005-12-23
    PRINT 'Résultat n°1 : ''' + CAST(DATEPART(yyyy, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(mm, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(dd, @MaDate) AS VARCHAR(256)) + ''''
     
    SET @MaDate = 23-12-2005
    PRINT 'Résultat n°2 : ''' + CAST(DATEPART(yyyy, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(mm, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(dd, @MaDate) AS VARCHAR(256)) + ''''
     
    SET @MaDate = 23/12/2005
    PRINT 'Résultat n°3 : ''' + CAST(DATEPART(yyyy, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(mm, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(dd, @MaDate) AS VARCHAR(256)) + ''''
     
    SET @MaDate = 2005/12/23
    PRINT 'Résultat n°4 : ''' + CAST(DATEPART(yyyy, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(mm, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(dd, @MaDate) AS VARCHAR(256)) + ''''
    On obtient

    ______________________________________
    Résultat n°1 : '1905-5-25'
    Résultat n°2 : '1894-7-17'
    Résultat n°3 : '1900-1-1'
    Résultat n°4 : '1900-1-8'
    ______________________________________

    Conclusion : La manière d'écrire la date est très important !!! Mais ça tous le monde le savait !

    Question et but de ce message : C'est quoi le bon format ??

    Merci d'avance

    @++

    NeoMan

    PS: Non seulement je tourne en rond, mais en plus je remonte le temps... Je suis pas prêt de rejoindre l'instant ou je trouverais la réponse!

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    Celui qui vous est attribué par rapport à la langue qui a été configurée au niveau de votre login.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre confirmé Avatar de NeoMan
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 171
    Par défaut
    Il manquait simplement les quotes autour des dates !!
    Correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    DECLARE @MaDate AS DATETIME
     
    /*SET @MaDate = '2005-12-23' <== ERREUR
    PRINT 'Résultat n°1 : ''' + CAST(DATEPART(yyyy, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(mm, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(dd, @MaDate) AS VARCHAR(256)) + ''''*/
     
    SET @MaDate = '23-12-2005'
    PRINT 'Résultat n°2 : ''' + CAST(DATEPART(yyyy, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(mm, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(dd, @MaDate) AS VARCHAR(256)) + ''''
     
    SET @MaDate = '23/12/2005'
    PRINT 'Résultat n°3 : ''' + CAST(DATEPART(yyyy, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(mm, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(dd, @MaDate) AS VARCHAR(256)) + ''''
     
    /*SET @MaDate = '2005/12/23' <== ERREUR
    PRINT 'Résultat n°4 : ''' + CAST(DATEPART(yyyy, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(mm, @MaDate) AS VARCHAR(256)) + '-' + CAST(DATEPART(dd, @MaDate) AS VARCHAR(256)) + '''' */

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

Discussions similaires

  1. Une requête SQL manipule le type DateTime
    Par josy01 dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/05/2008, 11h55
  2. [sql-server]problème type datetime
    Par -Neo- dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/01/2008, 09h52
  3. [SQL S 2000] Type de variable ?
    Par Tankian dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/06/2004, 14h03
  4. requete vers une colonne de type datetime
    Par Zorgz dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/12/2003, 12h37
  5. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58

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