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 :

[SQLSERVER2000] date mysql => datetime = probleme :s


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut [SQLSERVER2000] date mysql => datetime = probleme :s
    Bonjour tout le monde

    Je crois que j ai vraiment un probleme avec les dates lol, avant c etait les timestamp vers datetime, maintenant c est la date vers datetime

    Le format de date MySql est le suivant aaaa-mm-jj (2000-01-30) tandis que celui de SqlServer est : aaaa-jj-mm (2000-30-01).

    Comment faire pour déplacer le mois à la place des jours à la manière d'un substring de php ?

    Est ce que ça existe en SqlServer ?

    Merci de votre aide

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 112
    Points : 94
    Points
    94
    Par défaut
    Salut,

    t'as pas besoin de chipoter dans la date comme si c'etait un string en deplacant les mois et jours...

    je pense que la fonction CONVERT fera l'affaire:

    un truc du genre CONVERT(smalldateime,DateMySQL, Style de date)

    J'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONVERT(smalldatetime, '2008-30-01', 103)
    et ca retourne ca comme date: 30.01.2008 (style de date allemand)

    je pense que si tu execute ce code de ton coté tu auras la date que tu souhaite! (je pense que 103 c'est le code pour Style France)

    Bonne chance!

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    merci de ta reponse mais dans ton code tu mets une date avec le format SQL SERVER et non Mysql. ^^

    En mettant une date Mysql à la place de la tienne j'obtiens ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CONVERT(smalldatetime, '2008-01-30', 103)
    
    Server: Msg 296, Level 16, State 3, Line 1
    The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

  4. #4
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Autant pour moi, en fait les 2 formats de date, SQL SERVER (datetime) et MySql (date), sont les memes AAAA-MM-JJ., c'est le message d'erreur qui m'a mis le doute !

    J ai reverifié et en fait le champs qui contient la date est un varchar(10)

    Donc j ai fait une bidouille pas tres jolie mais ça marche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT
    CAST(
    SUBSTRING(CAST(DT_NAISS AS VARCHAR(10)), 1, 4)+'-'+
    SUBSTRING(CAST(DT_NAISS AS VARCHAR(10)), 9, 2)+'-'+
    SUBSTRING(CAST(DT_NAISS AS VARCHAR(10)), 6, 2) 
    AS DATETIME)
    FROM maTable
    Par exemple ac la date 1980-05-25 j'obtiens 1982-05-25 00:00:00.000

    Voila si qq un a mieux, je suis preneur

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 112
    Points : 94
    Points
    94
    Par défaut
    Alors desolé, tu dois donc chipoter dans la date

    si tu recois la date Mysql toutjours dans ce format (2000-01-30), ce string contient 10 charactere on fesant un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUBSTRING('2008-01-30', 1, 4) + '-' + SUBSTRING('2008-01-30', 9, 2) + '-' + SUBSTRING('2008-01-30', 6, 2)
    tu auras donc la date voulue: 2008-30-01


    Salut!

    EDIT: LOL, mon post est arrivé un peu tard

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 112
    Points : 94
    Points
    94
    Par défaut
    si tu veux ne pas avoir les 00000 pour le temps mets un smalldatetime au lieu de datetime!

Discussions similaires

  1. probleme Date MySQL
    Par babalastar dans le forum JDBC
    Réponses: 6
    Dernier message: 12/01/2007, 14h07
  2. [MySQL + VB .NET] Probleme DateTime Valide
    Par zitoun dans le forum Installation
    Réponses: 7
    Dernier message: 08/08/2006, 12h31
  3. [VS2005][VB.NET] Probleme date mysql
    Par hellmer dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/06/2006, 20h19
  4. [SGBD] Convertir une donnée Date MYSQL en format Francais
    Par hillairet dans le forum Débuter
    Réponses: 4
    Dernier message: 28/09/2005, 15h06
  5. mysql 3.23 probleme charset
    Par lcoder dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 04/07/2005, 13h28

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