[VB.NET] Format datetime [Résolu/Fermé]

Signaler
Messages postés
30
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
5 mai 2017
-
Messages postés
30
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
5 mai 2017
-
Bonjour,

Je développe une application sur Visual studion 2008 en utilisant VB.NET. J'utilise aussi une base de données Mysql géré par phpmyadmin via EasyPhp.

Mon problème se situe au niveau de l'enregistrement d'une date dans la base de données.

Le format de ma date sur mon application est le suivant : jj/mm/aaaa hh:mm:ss
Le format dans la base de donnée est le suivant : jjjj-mm-aa hh:mm:ss

Je pense que mon probleme viendrait d'un conflit entre ces deux formats.
Ma question est la suivante: Comment uniformiser les formats pour enregistrer la date dans la base de données.

Cordialement

4 réponses


Bonjour,

Le transfert de données entre la BD et un interface doit se faire
de façon explicite en ce qui a trait au typage des données.

Sous MySQL 5.5, j'ai défini un champ Date et j'enregistre avec
une variable de type Date et cela se passe bien.

Regarde si le type Date existe sous ta version de MySQL
et utilise le format Date de VB.NET.

Sinon, il te faudra faire la conversion et présenté la date
sous forme de chaine de caractères mais dans l'ordre du format
Date de la version que tu as de MySQL.

Il doit exister une instruction MySQL qui permet d'aiguiller le compilateur
vers le typage de la donnée, exemple sous Oracle, on écrit :

CDATE("1999-01-01")
CDATE(@MaVariable)

Date sous format chaine VB.NET :

LaDate.ToShortDateString
LaDate.ToLongDateString

LaDate.ToShortTimeString

Cdt

Lupin
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 58212 internautes nous ont dit merci ce mois-ci

Messages postés
30
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
5 mai 2017

Bonjour,

Le champ contenant ma date dans la base de données est déclaré avec le type "datetime". Par défaut la valeur est "0000-00-00 00:00:00" Donc AAAA-MM-JJ.

Dans mon appliation, ma variable est bien déclarée en date :
Public date_aujourdhui_Y_M_D As Date


Ensuite je l'initialise en fonction de tous les formats qui me sont proposés:

date_aujourdhui_Y_M_D = FormatDateTime(Date.Now, DateFormat.GeneralDate)
MsgBox(date_aujourdhui_Y_M_D)
Affichage : 21/05/2012 15:34:15

date_aujourdhui_Y_M_D = FormatDateTime(Date.Now, DateFormat.LongDate)
MsgBox(date_aujourdhui_Y_M_D)
Affichage : 21/05/2012

date_aujourdhui_Y_M_D = FormatDateTime(Date.Now, DateFormat.LongTime)
MsgBox(date_aujourdhui_Y_M_D)
Affichage : 15:34:15

date_aujourdhui_Y_M_D = FormatDateTime(Date.Now, DateFormat.ShortDate)
MsgBox(date_aujourdhui_Y_M_D)
Affichage : 21/05/2012

date_aujourdhui_Y_M_D = FormatDateTime(Date.Now, DateFormat.ShortTime)
MsgBox(date_aujourdhui_Y_M_D)
Affichage :15:34:15

Comme tu peux le voir aucun des formats ne m'affiche la date sous fome AAAA-MM-JJ.

Aurais tu une autre idée?

Codialement
Messages postés
30
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
5 mai 2017

Une autre idée?

re:

Un peu tard, mais enfin ...

Sous ma version de MySQL, j'ai la possibilité de déclarer le format
de mon champs en type [ Date ] au lieu de [ DateTime ].

Peut-être que cela pourrait résoudre ton problème, si bien sur
tu n'as pas besoin de l'heure.

Cdt

Lupin
Messages postés
30
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
5 mai 2017

Pour modifier le format, cette fonction fonctionne : Format(,)

exemple : Format(Variable_datetime,"yyyy-MM-dd")

merci pour votre aide.