[VB.NET] Format datetime

Résolu/Fermé
arkhan07 Messages postés 30 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 5 mai 2017 - 21 mai 2012 à 10:47
arkhan07 Messages postés 30 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 5 mai 2017 - 7 juin 2012 à 11:03
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

A voir également:

4 réponses

Utilisateur anonyme
21 mai 2012 à 14:48
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
arkhan07 Messages postés 30 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 5 mai 2017
21 mai 2012 à 15:39
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
0
arkhan07 Messages postés 30 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 5 mai 2017
Modifié par arkhan07 le 22/05/2012 à 11:28
Une autre idée?
0
Utilisateur anonyme
5 juin 2012 à 22:30
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
0
arkhan07 Messages postés 30 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 5 mai 2017
7 juin 2012 à 11:03
Pour modifier le format, cette fonction fonctionne : Format(,)

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

merci pour votre aide.
0