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

WinDev Discussion :

problème avec datetime en windev [WD18]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Par défaut problème avec datetime en windev
    bonjour à tous,

    SOS SUR LE TYPE DATETIME EN WINDEV

    je vous explique:

    l'insertion dans MySQL depuis Windev marche (voir)Nom : date ds mysql.PNG
Affichages : 2204
Taille : 2,6 Ko

    mais c'est l'affichage des occurrences de date (datetime) dans une table Windev qui ne marche pas (voir résultat)Nom : resultat.PNG
Affichages : 2224
Taille : 6,6 Ko



    merci de m'aider
    Images attachées Images attachées   

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour, on peut voir votre requête SQL? pour moi, quand vous faites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dhSaisirle est une dateHeure=SQLLitCol("REQ1",4)
    , ne doit pas être une date heure au format WLanguage, pour moi, vous devriez appliquer une conversion en chaine dans votre requête SQL afin d'avoir un résultat au format AAAAMMJJHHMMSSCCC

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Par défaut
    jai essayé quelques conversion mais en vain.

    voici mon code
    Code : 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
    i est un entier = 0
    SQLExec(" select * from pays2","REQ1")
    // Récupérer la requête ligne à ligne
    TANTQUE SQLFetch("REQ1") = 0 
    	// Il y a encore une ligne
    	i++
    	// Récupérer les données
    	id est un entier = SQLLitCol("REQ1",1)
    	code est une chaîne = SQLLitCol("REQ1", 2)
    	nom est une chaîne = SQLLitCol("REQ1",3)
    	dhSaisirle est une DateHeure= SQLLitCol("REQ1",4)
    	//hSaisirle est une date=ChaîneVersDate(sSaisirle,"JJ/MM/AAAA")
    	//hDath est une heure=Remplace(milieu(sSaisirle,10,8),":"," ")
    	//dhMadate est une dateheure=hSaisirle+hDath
    	TableAjoute(TABLE_pays,id+TAB+code+TAB+nom+TAB+dhSaisirle)
    FIN 
    SQLFerme("REQ1")

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 218
    Par défaut
    Quand tu fais select * from pays2, tu pars sur une mauvaise base.

    Le client SQL te renvoie la date, mis il la renvoie probablement dans un format 'lisible par un humain'. Il s'appuie sur les paramètres régionaux de Windows, pour te formater la chaine d'une certaine façon. Et demain, tu vas changer d'ordinateur, ou de version Windows, ou autre, et le format choisi par windows ne sera peut-être plus le même.

    La sécurité, c'est de faire select to_char(date_heure , 'YYYYMMDDHHMISS' ) from pays2.
    Vérifie dans l'aide de MYSQL la syntaxe pour formater une date en chaine de caractère.
    En faisant comme ça, tu es sûr de recevoir un format qui est toujours le même , et celui que TU as choisi, pas celui choisi par Windows.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Dans les langages comme le .NET, faire une requête n'est pas vraiment un problème car lors de la lecture, il est possible de dire de récupérer une valeur par rapport au nom de la colonne, ce qui n'est pas le cas avec les fonctions SQLXXX qui font appel à un indice de colonne, ce qui n'est pas l'idéal...
    Par mesure de précaution, il faut mettre en clair les noms des colonnes que la requête SELECT doit faire afficher.
    En MySQL, pour convertir une date en chaine, il faut faire appel à la fonction DATE_FORMAT

    EDIT: select DATE_FORMAT(saisieLe, "%Y%m%d%H%i%s")

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Par défaut
    désolé j'ai fais ce ke vous avez dit mais ca ne marche pas. le code ci-dessous
    Code : 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
    SQLExec(" select PaysId, codepays, nompays, date_format(saisirle, '"+"%d%m%Y%T"+"') as saisirle from pays2","REQ1")
    // Récupérer la requête ligne à ligne
    TANTQUE SQLFetch("REQ1") = 0 
    	// Il y a encore une ligne
    	i++
    	// Récupérer les données
    	id est un entier = SQLLitCol("REQ1",1)
    	code est une chaîne = SQLLitCol("REQ1", 2)
    	nom est une chaîne = SQLLitCol("REQ1",3)
    	sSaisirle est une chaîne= SQLLitCol("REQ1",4)
    	dSaisirle est une Date=ChaîneVersDate(Milieu(sSaisirle,1,8),"JJ/MM/AAAA")
    	hDath est une Heure=Remplace(Milieu(sSaisirle,9,8)," ",":")
    	dhMadate est une DateHeure=dSaisirle+" "+hDath
    	//Remplac
    	TableAjoute(TABLE_pays,id+TAB+code+TAB+nom+TAB+dhMadate)
    FIN 
    SQLFerme("REQ1")

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

Discussions similaires

  1. Problème avec datetime local
    Par alexj78 dans le forum Langage
    Réponses: 7
    Dernier message: 19/08/2014, 11h05
  2. Problème avec datetime local
    Par alexj78 dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 19/08/2014, 10h25
  3. [Débutant] Problème avec Datetime :/
    Par Genyuumaru dans le forum ASP.NET MVC
    Réponses: 7
    Dernier message: 03/10/2012, 11h53
  4. Problème avec dateTime
    Par ralf91 dans le forum Accès aux données
    Réponses: 9
    Dernier message: 29/06/2011, 14h40
  5. problême avec datetime
    Par Xanime dans le forum Services Web
    Réponses: 1
    Dernier message: 13/06/2007, 16h24

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