Il y a quelques années, j'avais réalisé une application en ASP/MS Access où
je devais gérer des dates. Je me suis tellement pris la tête avec les
problèmes de conversions et de formats (parfois c'était jj/mm/aaaa, parfois
c'était mm/jj/aaaa) que finalement j'ai décidé de stocker uniquement des
entiers : aaaammjj.
J'ai été pleinement satisfait de cette solution qui me permettait de trier
et de faire tout ce que je voulais au prix uniquement d'une petite fonction
intToDate et dateToInt.
Maintenant, je suis sur une application J2EE avec MySQL et je me demande de
quelle façon je vais devoir gérer les dates. Faut-il que je reprenne ma
stratégie ci-dessus ou risque-t-elle de me poser des problèmes ?
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne pour
que je n'ai pas à m'en faire ? Et le traitement des dates en java est-il
problématique ?
Merci d'avance pour vos références, conseils et retours d'expérience
Lilian
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JScoobyCed
LR wrote:
Salut,
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne pour que je n'ai pas à m'en faire ? Et le traitement des dates en java est-il problématique ?
Merci d'avance pour vos références, conseils et retours d'expérience Lilian
Bonjour,
Que cela soit MySQL ou Access, Oracle ou MS SQL, Sybase, Informix, etc, le JDBC retourne directement un objet Date. Donc il n'y a pas de soucis a se faire pour retrouver l'objet de la base de donnee. Dans l'application elle meme, il suffit de convertir les champ de saisis en objet Date, et de construire la requete SQL avec SimpleDateFormat formatter = null; formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); formatter.setLenient(false); String sqlDate = formatter.format(date)
-- JSC
LR wrote:
Salut,
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne pour
que je n'ai pas à m'en faire ? Et le traitement des dates en java est-il
problématique ?
Merci d'avance pour vos références, conseils et retours d'expérience
Lilian
Bonjour,
Que cela soit MySQL ou Access, Oracle ou MS SQL, Sybase, Informix,
etc, le JDBC retourne directement un objet Date. Donc il n'y a pas de
soucis a se faire pour retrouver l'objet de la base de donnee.
Dans l'application elle meme, il suffit de convertir les champ de saisis
en objet Date, et de construire la requete SQL avec
SimpleDateFormat formatter = null;
formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
formatter.setLenient(false);
String sqlDate = formatter.format(date)
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne pour que je n'ai pas à m'en faire ? Et le traitement des dates en java est-il problématique ?
Merci d'avance pour vos références, conseils et retours d'expérience Lilian
Bonjour,
Que cela soit MySQL ou Access, Oracle ou MS SQL, Sybase, Informix, etc, le JDBC retourne directement un objet Date. Donc il n'y a pas de soucis a se faire pour retrouver l'objet de la base de donnee. Dans l'application elle meme, il suffit de convertir les champ de saisis en objet Date, et de construire la requete SQL avec SimpleDateFormat formatter = null; formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); formatter.setLenient(false); String sqlDate = formatter.format(date)
-- JSC
Mike Baroukh
Dans l'application elle meme, il suffit de convertir les champ de saisis en objet Date, et de construire la requete SQL avec SimpleDateFormat formatter = null; formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); formatter.setLenient(false); String sqlDate = formatter.format(date)
En fait, je ne pense pas que ce soit la bonne façon de faire. Si on a un objet java.sql.Date (tou timestamp), il faut - soit utiliser un PreparedStatement - soit utiliser les escapes jdbc : sql=...where date>{ts "+date+"}" pour un timestamp. Remplacer ts par td pour une date.
Mike
LR wrote:
Salut,
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne pour que je n'ai pas à m'en faire ? Et le traitement des dates en java est -il problématique ?
Merci d'avance pour vos références, conseils et retours d'expérie nce Lilian
Bonjour,
Que cela soit MySQL ou Access, Oracle ou MS SQL, Sybase, Informix, etc, le JDBC retourne directement un objet Date. Donc il n'y a pas de soucis a se faire pour retrouver l'objet de la base de donnee. Dans l'application elle meme, il suffit de convertir les champ de saisis en objet Date, et de construire la requete SQL avec SimpleDateFormat formatter = null; formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); formatter.setLenient(false); String sqlDate = formatter.format(date)
-- JSC
Dans l'application elle meme, il suffit de convertir les champ de
saisis
en objet Date, et de construire la requete SQL avec
SimpleDateFormat formatter = null;
formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
formatter.setLenient(false);
String sqlDate = formatter.format(date)
En fait, je ne pense pas que ce soit la bonne façon de faire.
Si on a un objet java.sql.Date (tou timestamp), il faut
- soit utiliser un PreparedStatement
- soit utiliser les escapes jdbc : sql=...where date>{ts "+date+"}" pour
un timestamp. Remplacer ts par td pour une date.
Mike
LR wrote:
Salut,
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne pour
que je n'ai pas à m'en faire ? Et le traitement des dates en java est -il
problématique ?
Merci d'avance pour vos références, conseils et retours d'expérie nce
Lilian
Bonjour,
Que cela soit MySQL ou Access, Oracle ou MS SQL, Sybase, Informix,
etc, le JDBC retourne directement un objet Date. Donc il n'y a pas de
soucis a se faire pour retrouver l'objet de la base de donnee.
Dans l'application elle meme, il suffit de convertir les champ de saisis
en objet Date, et de construire la requete SQL avec
SimpleDateFormat formatter = null;
formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
formatter.setLenient(false);
String sqlDate = formatter.format(date)
Dans l'application elle meme, il suffit de convertir les champ de saisis en objet Date, et de construire la requete SQL avec SimpleDateFormat formatter = null; formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); formatter.setLenient(false); String sqlDate = formatter.format(date)
En fait, je ne pense pas que ce soit la bonne façon de faire. Si on a un objet java.sql.Date (tou timestamp), il faut - soit utiliser un PreparedStatement - soit utiliser les escapes jdbc : sql=...where date>{ts "+date+"}" pour un timestamp. Remplacer ts par td pour une date.
Mike
LR wrote:
Salut,
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne pour que je n'ai pas à m'en faire ? Et le traitement des dates en java est -il problématique ?
Merci d'avance pour vos références, conseils et retours d'expérie nce Lilian
Bonjour,
Que cela soit MySQL ou Access, Oracle ou MS SQL, Sybase, Informix, etc, le JDBC retourne directement un objet Date. Donc il n'y a pas de soucis a se faire pour retrouver l'objet de la base de donnee. Dans l'application elle meme, il suffit de convertir les champ de saisis en objet Date, et de construire la requete SQL avec SimpleDateFormat formatter = null; formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); formatter.setLenient(false); String sqlDate = formatter.format(date)
-- JSC
Mike Baroukh
Bonjour.
En jdbc, tu peux - soit utiliser des PreparedStatement auxquels tu passe directement des objets java.sql.Timestamp ou java.sql.date - soit utiliser des escape particuliers qui permettent de construire des requetes pour ta base : Si tu as un objet java.sql.timstamp, il suffit de faire sql=...where date>{ts '"+objettimestamp+"'}"
sachant que, lorsqu'ils mettent {ts 'yyyy-mm-dd hh:mm:ss.f...'} en fait, tu n'a pas à t'inquieter du format avec un java.sql.Timestamp car sa méthode toString() formatte déjà correctement.
Mike
Salut,
Il y a quelques années, j'avais réalisé une application en ASP/MS A ccess où je devais gérer des dates. Je me suis tellement pris la tête avec les problèmes de conversions et de formats (parfois c'était jj/mm/aaaa, p arfois c'était mm/jj/aaaa) que finalement j'ai décidé de stocker uniquemen t des entiers : aaaammjj.
J'ai été pleinement satisfait de cette solution qui me permettait de trier et de faire tout ce que je voulais au prix uniquement d'une petite foncti on intToDate et dateToInt.
Maintenant, je suis sur une application J2EE avec MySQL et je me demande de quelle façon je vais devoir gérer les dates. Faut-il que je reprenne ma stratégie ci-dessus ou risque-t-elle de me poser des problèmes ?
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne po ur que je n'ai pas à m'en faire ? Et le traitement des dates en java est-i l problématique ?
Merci d'avance pour vos références, conseils et retours d'expérienc e Lilian
Bonjour.
En jdbc, tu peux
- soit utiliser des PreparedStatement auxquels tu passe directement des
objets java.sql.Timestamp ou java.sql.date
- soit utiliser des escape particuliers qui permettent de construire des
requetes pour ta base : Si tu as un objet java.sql.timstamp, il suffit
de faire sql=...where date>{ts '"+objettimestamp+"'}"
sachant que, lorsqu'ils mettent
{ts 'yyyy-mm-dd hh:mm:ss.f...'}
en fait, tu n'a pas à t'inquieter du format avec un java.sql.Timestamp
car sa méthode toString() formatte déjà correctement.
Mike
Salut,
Il y a quelques années, j'avais réalisé une application en ASP/MS A ccess où
je devais gérer des dates. Je me suis tellement pris la tête avec les
problèmes de conversions et de formats (parfois c'était jj/mm/aaaa, p arfois
c'était mm/jj/aaaa) que finalement j'ai décidé de stocker uniquemen t des
entiers : aaaammjj.
J'ai été pleinement satisfait de cette solution qui me permettait de trier
et de faire tout ce que je voulais au prix uniquement d'une petite foncti on
intToDate et dateToInt.
Maintenant, je suis sur une application J2EE avec MySQL et je me demande de
quelle façon je vais devoir gérer les dates. Faut-il que je reprenne ma
stratégie ci-dessus ou risque-t-elle de me poser des problèmes ?
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne po ur
que je n'ai pas à m'en faire ? Et le traitement des dates en java est-i l
problématique ?
Merci d'avance pour vos références, conseils et retours d'expérienc e
Lilian
En jdbc, tu peux - soit utiliser des PreparedStatement auxquels tu passe directement des objets java.sql.Timestamp ou java.sql.date - soit utiliser des escape particuliers qui permettent de construire des requetes pour ta base : Si tu as un objet java.sql.timstamp, il suffit de faire sql=...where date>{ts '"+objettimestamp+"'}"
sachant que, lorsqu'ils mettent {ts 'yyyy-mm-dd hh:mm:ss.f...'} en fait, tu n'a pas à t'inquieter du format avec un java.sql.Timestamp car sa méthode toString() formatte déjà correctement.
Mike
Salut,
Il y a quelques années, j'avais réalisé une application en ASP/MS A ccess où je devais gérer des dates. Je me suis tellement pris la tête avec les problèmes de conversions et de formats (parfois c'était jj/mm/aaaa, p arfois c'était mm/jj/aaaa) que finalement j'ai décidé de stocker uniquemen t des entiers : aaaammjj.
J'ai été pleinement satisfait de cette solution qui me permettait de trier et de faire tout ce que je voulais au prix uniquement d'une petite foncti on intToDate et dateToInt.
Maintenant, je suis sur une application J2EE avec MySQL et je me demande de quelle façon je vais devoir gérer les dates. Faut-il que je reprenne ma stratégie ci-dessus ou risque-t-elle de me poser des problèmes ?
Est-ce que la gestion des champs Date dans MySQL est suffisament bonne po ur que je n'ai pas à m'en faire ? Et le traitement des dates en java est-i l problématique ?
Merci d'avance pour vos références, conseils et retours d'expérienc e Lilian
Alain
Bonjour.
En jdbc, tu peux - soit utiliser des PreparedStatement auxquels tu passe directement des objets java.sql.Timestamp ou java.sql.date - soit utiliser des escape particuliers qui permettent de construire des requetes pour ta base : Si tu as un objet java.sql.timstamp, il suffit de faire sql=...where date>{ts '"+objettimestamp+"'}" tout a fait
mais attention, la méthode avec escape est très dangereuse (il suffit que tu oublie un cas et...)... surtout si tu fais un serveur web qui deviendra alors piratable... un plus ca fait du code plus complexe
les prepared statement c'est hyper pratique et pas compliqué a utiliser.
Bonjour.
En jdbc, tu peux
- soit utiliser des PreparedStatement auxquels tu passe directement des
objets java.sql.Timestamp ou java.sql.date
- soit utiliser des escape particuliers qui permettent de construire des
requetes pour ta base : Si tu as un objet java.sql.timstamp, il suffit
de faire sql=...where date>{ts '"+objettimestamp+"'}"
tout a fait
mais attention, la méthode avec escape est très dangereuse (il suffit
que tu oublie un cas et...)... surtout si tu fais un serveur web qui
deviendra alors piratable...
un plus ca fait du code plus complexe
les prepared statement c'est hyper pratique et pas compliqué a utiliser.
En jdbc, tu peux - soit utiliser des PreparedStatement auxquels tu passe directement des objets java.sql.Timestamp ou java.sql.date - soit utiliser des escape particuliers qui permettent de construire des requetes pour ta base : Si tu as un objet java.sql.timstamp, il suffit de faire sql=...where date>{ts '"+objettimestamp+"'}" tout a fait
mais attention, la méthode avec escape est très dangereuse (il suffit que tu oublie un cas et...)... surtout si tu fais un serveur web qui deviendra alors piratable... un plus ca fait du code plus complexe
les prepared statement c'est hyper pratique et pas compliqué a utiliser.