Conversion d'une chaine de caractere en datetime
Bonjour,
j'ai écrit un programme en java qui permet d'afficher à l'écran le résultat d'une requete sql.
Dans la requete sql, il y a en autres :
Code:
1 2
| WHERE (I.[Close Date & Time] BETWEEN '20070622 07:00:00.000' AND '20070622 19:00:00.000')
AND (I.[GROUP Name]='EHSFAC-SERVICEDESK1' OR I.[GROUP Name]='EHSFAC-SERVICEDESK2') |
Maitenant, je souhaite remplacer la date (ici 20070622) par une chaine de caractere qui aura été
fourni par l'utilisateur.
Je récupere la date entrée de cette façon:
Code:
1 2 3 4
| String date;
Container container = frame.getContentPane();
String message = "Entrez une date au format américain\nExemple : 20070622";
date = JOptionPane.showInputDialog(container, message); |
que j'ai injecté dans le programme java de cette manière :
Code:
1 2
| "WHERE (I.[Close Date & Time] BETWEEN '" + date + " 07:00:00.000' AND '" + date +" 19:00:00.000') "+
"AND (I.[GROUP Name]='EHSFAC-SERVICEDESK1' OR I.[GROUP Name]='EHSFAC-SERVICEDESK2') " |
Avec cette écriture, j'obtiens l'exception
Code:
1 2 3 4 5 6 7
| java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et d'heure.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
at MonMenu.main(MonMenu.java:551) |
Je voudrai savoir ce qu'il faut faire pour qu'il n'y ait plus ce probleme.
Merci