OVH Cloud OVH Cloud

Conversion de type

7 réponses
Avatar
sKiPoU
Bonjour,

-----------------------------------------------------------------------------------------
select * from table
where date_debut between convert(smalldatetime,'" & recup_date1 & "') and
convert(smalldatetime,'" & recup_date2 & "')
------------------------------------------------------------------------------------------

Je souhaite effectuer une requete sur des dates, je récupère les dates en
asp sous la forme 'jj/mm/aaaa'.
En base, les champs sont de type varchar(10) et donc de type 'jj/mm/aaaa'

Le problème est que depuis quelques jours j'ai ceci :

Microsoft OLE DB Provider for SQL Server error '80040e07'

La conversion du type de données CHAR en SMALLMONEY a donné une valeur hors
des limites des valeurs monétaires.

Bon, je veux bien qu'il y ai des erreurs mais je ne demande et je n'ai pas
de type smallmoney.

Merci d'avance.

7 réponses

Avatar
Patrice
Etrange...

J'imprimerais le texte exact de la requête pour l'exécuter dans QA (pb dans
recup_date1 ou recup_date 2 ?)

Essaie de voir aussi si le problème survient quelque soit les lignes de
table ou si cela survient sur une ligne en particulier (par exemple en
ajoutant une sélection sur pk). Si cela marche pour une ligne en
particulier, c'est alors sans doute un problème dans le texte stockée dans
date_debut pour l'une des lignes de la table.

Par ailleurs, je stockerais les dates sous forme de dates plutôt que sous
forme de texte...

Patrice

--

"sKiPoU" a écrit dans le message de
news:
Bonjour,

--------------------------------------------------------------------------


---------------
select * from table
where date_debut between convert(smalldatetime,'" & recup_date1 & "') and
convert(smalldatetime,'" & recup_date2 & "') "
--------------------------------------------------------------------------


----------------

Je souhaite effectuer une requete sur des dates, je récupère les dates en
asp sous la forme 'jj/mm/aaaa'.
En base, les champs sont de type varchar(10) et donc de type 'jj/mm/aaaa'

Le problème est que depuis quelques jours j'ai ceci :

Microsoft OLE DB Provider for SQL Server error '80040e07'

La conversion du type de données CHAR en SMALLMONEY a donné une valeur


hors
des limites des valeurs monétaires.

Bon, je veux bien qu'il y ai des erreurs mais je ne demande et je n'ai pas
de type smallmoney.

Merci d'avance.








Avatar
sKiPoU
Pour la requete dans le QA cela donne cela (meme si j'avais deja testé avant
que tu le dises) :

select * from table
where date_debut between convert(smalldatetime,'01/04/2005') and
convert(smalldatetime,'07/05/2005').

Pour le type date, je ne peux pas le mettre, j'ai récupéré un projet qui
était démarré comme ca, et cela va poser des problèmes si je le change.

En fait, ca plante bien sur les dates mais le pire c'est que meme une
requete me renvoyant un jeu d'enregistrement vide plante aussi. (cf : testé
dans QA).




"Patrice" a écrit :

Etrange...

J'imprimerais le texte exact de la requête pour l'exécuter dans QA (pb dans
recup_date1 ou recup_date 2 ?)

Essaie de voir aussi si le problème survient quelque soit les lignes de
table ou si cela survient sur une ligne en particulier (par exemple en
ajoutant une sélection sur pk). Si cela marche pour une ligne en
particulier, c'est alors sans doute un problème dans le texte stockée dans
date_debut pour l'une des lignes de la table.

Par ailleurs, je stockerais les dates sous forme de dates plutôt que sous
forme de texte...

Patrice

--

"sKiPoU" a écrit dans le message de
news:
> Bonjour,
>
> --------------------------------------------------------------------------
---------------
> select * from table
> where date_debut between convert(smalldatetime,'" & recup_date1 & "') and
> convert(smalldatetime,'" & recup_date2 & "') "
> --------------------------------------------------------------------------
----------------
>
> Je souhaite effectuer une requete sur des dates, je récupère les dates en
> asp sous la forme 'jj/mm/aaaa'.
> En base, les champs sont de type varchar(10) et donc de type 'jj/mm/aaaa'
>
> Le problème est que depuis quelques jours j'ai ceci :
>
> Microsoft OLE DB Provider for SQL Server error '80040e07'
>
> La conversion du type de données CHAR en SMALLMONEY a donné une valeur
hors
> des limites des valeurs monétaires.
>
> Bon, je veux bien qu'il y ai des erreurs mais je ne demande et je n'ai pas
> de type smallmoney.
>
> Merci d'avance.
>
>
>
>
>
>





Avatar
Patrice
Ta table s'appelle vraiment "table" ?
Et avec une table recrée pour test, y 'a t'il le même problème ? (cela nous
permettrait éventuellement de tester aussi).

Si on commence par le début que donne un

SELECT CONVERT(smalldatetime,date_debut) FROM MaTable

Bon courage.

Patrice


--

"sKiPoU" a écrit dans le message de
news:
Pour la requete dans le QA cela donne cela (meme si j'avais deja testé


avant
que tu le dises) :

select * from table
where date_debut between convert(smalldatetime,'01/04/2005') and
convert(smalldatetime,'07/05/2005').

Pour le type date, je ne peux pas le mettre, j'ai récupéré un projet qui
était démarré comme ca, et cela va poser des problèmes si je le change.

En fait, ca plante bien sur les dates mais le pire c'est que meme une
requete me renvoyant un jeu d'enregistrement vide plante aussi. (cf :


testé
dans QA).




"Patrice" a écrit :

> Etrange...
>
> J'imprimerais le texte exact de la requête pour l'exécuter dans QA (pb


dans
> recup_date1 ou recup_date 2 ?)
>
> Essaie de voir aussi si le problème survient quelque soit les lignes de
> table ou si cela survient sur une ligne en particulier (par exemple en
> ajoutant une sélection sur pk). Si cela marche pour une ligne en
> particulier, c'est alors sans doute un problème dans le texte stockée


dans
> date_debut pour l'une des lignes de la table.
>
> Par ailleurs, je stockerais les dates sous forme de dates plutôt que


sous
> forme de texte...
>
> Patrice
>
> --
>
> "sKiPoU" a écrit dans le message de
> news:
> > Bonjour,
> >
>
--------------------------------------------------------------------------
> ---------------
> > select * from table
> > where date_debut between convert(smalldatetime,'" & recup_date1 & "')


and
> > convert(smalldatetime,'" & recup_date2 & "') "
>
--------------------------------------------------------------------------
> ----------------
> >
> > Je souhaite effectuer une requete sur des dates, je récupère les dates


en
> > asp sous la forme 'jj/mm/aaaa'.
> > En base, les champs sont de type varchar(10) et donc de type


'jj/mm/aaaa'
> >
> > Le problème est que depuis quelques jours j'ai ceci :
> >
> > Microsoft OLE DB Provider for SQL Server error '80040e07'
> >
> > La conversion du type de données CHAR en SMALLMONEY a donné une valeur
> hors
> > des limites des valeurs monétaires.
> >
> > Bon, je veux bien qu'il y ai des erreurs mais je ne demande et je n'ai


pas
> > de type smallmoney.
> >
> > Merci d'avance.
> >
> >
> >
> >
> >
> >
>
>
>


Avatar
sKiPoU
la table s'appelle "devis"

Voila ce que donne la requete "SELECT CONVERT(smalldatetime,date_debut) FROM
devis" :

(504 ligne(s) affectée(s))

Serveur : Msg 242, Niveau 16, État 3, Ligne 1
La conversion d'un type de données CHAR en type SMALLMONEY a donné une
valeur hors des limites des valeurs de date et d'heure.

Je n'ai jamais eu ce problème. Il est apparu ce matin. Je comprends pas.
J'ai regardé tous les types dans ma table, j'ai vérifié pas mal de truc mais
alors la je sèche complètement.

Je vais tester avec une table test je te tiendrais au courant (mais pas tout
de suite j'ai pas mal de taf en attente :p)

Merci


"Patrice" a écrit :

Ta table s'appelle vraiment "table" ?
Et avec une table recrée pour test, y 'a t'il le même problème ? (cela nous
permettrait éventuellement de tester aussi).

Si on commence par le début que donne un

SELECT CONVERT(smalldatetime,date_debut) FROM MaTable

Bon courage.

Patrice


--

"sKiPoU" a écrit dans le message de
news:
> Pour la requete dans le QA cela donne cela (meme si j'avais deja testé
avant
> que tu le dises) :
>
> select * from table
> where date_debut between convert(smalldatetime,'01/04/2005') and
> convert(smalldatetime,'07/05/2005').
>
> Pour le type date, je ne peux pas le mettre, j'ai récupéré un projet qui
> était démarré comme ca, et cela va poser des problèmes si je le change.
>
> En fait, ca plante bien sur les dates mais le pire c'est que meme une
> requete me renvoyant un jeu d'enregistrement vide plante aussi. (cf :
testé
> dans QA).
>
>
>
>
> "Patrice" a écrit :
>
> > Etrange...
> >
> > J'imprimerais le texte exact de la requête pour l'exécuter dans QA (pb
dans
> > recup_date1 ou recup_date 2 ?)
> >
> > Essaie de voir aussi si le problème survient quelque soit les lignes de
> > table ou si cela survient sur une ligne en particulier (par exemple en
> > ajoutant une sélection sur pk). Si cela marche pour une ligne en
> > particulier, c'est alors sans doute un problème dans le texte stockée
dans
> > date_debut pour l'une des lignes de la table.
> >
> > Par ailleurs, je stockerais les dates sous forme de dates plutôt que
sous
> > forme de texte...
> >
> > Patrice
> >
> > --
> >
> > "sKiPoU" a écrit dans le message de
> > news:
> > > Bonjour,
> > >
> >
> --------------------------------------------------------------------------
> > ---------------
> > > select * from table
> > > where date_debut between convert(smalldatetime,'" & recup_date1 & "')
and
> > > convert(smalldatetime,'" & recup_date2 & "') "
> >
> --------------------------------------------------------------------------
> > ----------------
> > >
> > > Je souhaite effectuer une requete sur des dates, je récupère les dates
en
> > > asp sous la forme 'jj/mm/aaaa'.
> > > En base, les champs sont de type varchar(10) et donc de type
'jj/mm/aaaa'
> > >
> > > Le problème est que depuis quelques jours j'ai ceci :
> > >
> > > Microsoft OLE DB Provider for SQL Server error '80040e07'
> > >
> > > La conversion du type de données CHAR en SMALLMONEY a donné une valeur
> > hors
> > > des limites des valeurs monétaires.
> > >
> > > Bon, je veux bien qu'il y ai des erreurs mais je ne demande et je n'ai
pas
> > > de type smallmoney.
> > >
> > > Merci d'avance.
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >





Avatar
Fr
Moi je ferais un select date_debut sans le convert pour voir à la ligne
505 ce qui est saisi comme date ... ça sent la date mal formatée




sKiPoU wrote:
la table s'appelle "devis"

Voila ce que donne la requete "SELECT CONVERT(smalldatetime,date_debut) FROM
devis" :

(504 ligne(s) affectée(s))

Serveur : Msg 242, Niveau 16, État 3, Ligne 1
La conversion d'un type de données CHAR en type SMALLMONEY a donné une
valeur hors des limites des valeurs de date et d'heure.

Je n'ai jamais eu ce problème. Il est apparu ce matin. Je comprends pas.
J'ai regardé tous les types dans ma table, j'ai vérifié pas mal de truc mais
alors la je sèche complètement.

Je vais tester avec une table test je te tiendrais au courant (mais pas tout
de suite j'ai pas mal de taf en attente :p)

Merci


"Patrice" a écrit :


Ta table s'appelle vraiment "table" ?
Et avec une table recrée pour test, y 'a t'il le même problème ? (cela nous
permettrait éventuellement de tester aussi).

Si on commence par le début que donne un

SELECT CONVERT(smalldatetime,date_debut) FROM MaTable

Bon courage.

Patrice


--

"sKiPoU" a écrit dans le message de
news:

Pour la requete dans le QA cela donne cela (meme si j'avais deja testé



avant

que tu le dises) :

select * from table
where date_debut between convert(smalldatetime,'01/04/2005') and
convert(smalldatetime,'07/05/2005').

Pour le type date, je ne peux pas le mettre, j'ai récupéré un projet qui
était démarré comme ca, et cela va poser des problèmes si je le change.

En fait, ca plante bien sur les dates mais le pire c'est que meme une
requete me renvoyant un jeu d'enregistrement vide plante aussi. (cf :



testé

dans QA).




"Patrice" a écrit :


Etrange...

J'imprimerais le texte exact de la requête pour l'exécuter dans QA (pb





dans

recup_date1 ou recup_date 2 ?)

Essaie de voir aussi si le problème survient quelque soit les lignes de
table ou si cela survient sur une ligne en particulier (par exemple en
ajoutant une sélection sur pk). Si cela marche pour une ligne en
particulier, c'est alors sans doute un problème dans le texte stockée





dans

date_debut pour l'une des lignes de la table.

Par ailleurs, je stockerais les dates sous forme de dates plutôt que





sous

forme de texte...

Patrice

--

"sKiPoU" a écrit dans le message de
news:

Bonjour,






--------------------------------------------------------------------------

---------------

select * from table
where date_debut between convert(smalldatetime,'" & recup_date1 & "')







and

convert(smalldatetime,'" & recup_date2 & "') "














--------------------------------------------------------------------------










----------------

Je souhaite effectuer une requete sur des dates, je récupère les dates







en

asp sous la forme 'jj/mm/aaaa'.
En base, les champs sont de type varchar(10) et donc de type







'jj/mm/aaaa'

Le problème est que depuis quelques jours j'ai ceci :

Microsoft OLE DB Provider for SQL Server error '80040e07'

La conversion du type de données CHAR en SMALLMONEY a donné une valeur



hors

des limites des valeurs monétaires.

Bon, je veux bien qu'il y ai des erreurs mais je ne demande et je n'ai







pas

de type smallmoney.

Merci d'avance.





















Avatar
Michel PRIORI
Essaie aussi de convertir en datetime plutôt qu'en smalldatetime.
Si ça passe tiens nous au courant du pourquoi.


"sKiPoU" a écrit :

la table s'appelle "devis"

Voila ce que donne la requete "SELECT CONVERT(smalldatetime,date_debut) FROM
devis" :

(504 ligne(s) affectée(s))

Serveur : Msg 242, Niveau 16, État 3, Ligne 1
La conversion d'un type de données CHAR en type SMALLMONEY a donné une
valeur hors des limites des valeurs de date et d'heure.

Je n'ai jamais eu ce problème. Il est apparu ce matin. Je comprends pas.
J'ai regardé tous les types dans ma table, j'ai vérifié pas mal de truc mais
alors la je sèche complètement.

Je vais tester avec une table test je te tiendrais au courant (mais pas tout
de suite j'ai pas mal de taf en attente :p)

Merci


"Patrice" a écrit :

> Ta table s'appelle vraiment "table" ?
> Et avec une table recrée pour test, y 'a t'il le même problème ? (cela nous
> permettrait éventuellement de tester aussi).
>
> Si on commence par le début que donne un
>
> SELECT CONVERT(smalldatetime,date_debut) FROM MaTable
>
> Bon courage.
>
> Patrice
>
>
> --
>
> "sKiPoU" a écrit dans le message de
> news:
> > Pour la requete dans le QA cela donne cela (meme si j'avais deja testé
> avant
> > que tu le dises) :
> >
> > select * from table
> > where date_debut between convert(smalldatetime,'01/04/2005') and
> > convert(smalldatetime,'07/05/2005').
> >
> > Pour le type date, je ne peux pas le mettre, j'ai récupéré un projet qui
> > était démarré comme ca, et cela va poser des problèmes si je le change.
> >
> > En fait, ca plante bien sur les dates mais le pire c'est que meme une
> > requete me renvoyant un jeu d'enregistrement vide plante aussi. (cf :
> testé
> > dans QA).
> >
> >
> >
> >
> > "Patrice" a écrit :
> >
> > > Etrange...
> > >
> > > J'imprimerais le texte exact de la requête pour l'exécuter dans QA (pb
> dans
> > > recup_date1 ou recup_date 2 ?)
> > >
> > > Essaie de voir aussi si le problème survient quelque soit les lignes de
> > > table ou si cela survient sur une ligne en particulier (par exemple en
> > > ajoutant une sélection sur pk). Si cela marche pour une ligne en
> > > particulier, c'est alors sans doute un problème dans le texte stockée
> dans
> > > date_debut pour l'une des lignes de la table.
> > >
> > > Par ailleurs, je stockerais les dates sous forme de dates plutôt que
> sous
> > > forme de texte...
> > >
> > > Patrice
> > >
> > > --
> > >
> > > "sKiPoU" a écrit dans le message de
> > > news:
> > > > Bonjour,
> > > >
> > >
> > --------------------------------------------------------------------------
> > > ---------------
> > > > select * from table
> > > > where date_debut between convert(smalldatetime,'" & recup_date1 & "')
> and
> > > > convert(smalldatetime,'" & recup_date2 & "') "
> > >
> > --------------------------------------------------------------------------
> > > ----------------
> > > >
> > > > Je souhaite effectuer une requete sur des dates, je récupère les dates
> en
> > > > asp sous la forme 'jj/mm/aaaa'.
> > > > En base, les champs sont de type varchar(10) et donc de type
> 'jj/mm/aaaa'
> > > >
> > > > Le problème est que depuis quelques jours j'ai ceci :
> > > >
> > > > Microsoft OLE DB Provider for SQL Server error '80040e07'
> > > >
> > > > La conversion du type de données CHAR en SMALLMONEY a donné une valeur
> > > hors
> > > > des limites des valeurs monétaires.
> > > >
> > > > Bon, je veux bien qu'il y ai des erreurs mais je ne demande et je n'ai
> pas
> > > > de type smallmoney.
> > > >
> > > > Merci d'avance.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
>
>
>


Avatar
sKiPoU
Tu as été plus rapide que moi, je viens de le faire à l'instant avant de voir
ton message (décidement....) et en effet... la date du 07/30/2005 n'a pas
l'air de plaire à SQL Server.
Merci les messages d'erreur en bois quand meme.
En tout cas, merci à toi Francky et à toi Patrice pour avoir pris le temps
de me répondre....
A bientôt pour d'autres péripéties :p


"" a écrit :

Moi je ferais un select date_debut sans le convert pour voir à la ligne
505 ce qui est saisi comme date ... ça sent la date mal formatée




sKiPoU wrote:
> la table s'appelle "devis"
>
> Voila ce que donne la requete "SELECT CONVERT(smalldatetime,date_debut) FROM
> devis" :
>
> (504 ligne(s) affectée(s))
>
> Serveur : Msg 242, Niveau 16, État 3, Ligne 1
> La conversion d'un type de données CHAR en type SMALLMONEY a donné une
> valeur hors des limites des valeurs de date et d'heure.
>
> Je n'ai jamais eu ce problème. Il est apparu ce matin. Je comprends pas.
> J'ai regardé tous les types dans ma table, j'ai vérifié pas mal de truc mais
> alors la je sèche complètement.
>
> Je vais tester avec une table test je te tiendrais au courant (mais pas tout
> de suite j'ai pas mal de taf en attente :p)
>
> Merci
>
>
> "Patrice" a écrit :
>
>
>>Ta table s'appelle vraiment "table" ?
>>Et avec une table recrée pour test, y 'a t'il le même problème ? (cela nous
>>permettrait éventuellement de tester aussi).
>>
>>Si on commence par le début que donne un
>>
>>SELECT CONVERT(smalldatetime,date_debut) FROM MaTable
>>
>>Bon courage.
>>
>>Patrice
>>
>>
>>--
>>
>>"sKiPoU" a écrit dans le message de
>>news:
>>
>>>Pour la requete dans le QA cela donne cela (meme si j'avais deja testé
>>
>>avant
>>
>>>que tu le dises) :
>>>
>>>select * from table
>>>where date_debut between convert(smalldatetime,'01/04/2005') and
>>>convert(smalldatetime,'07/05/2005').
>>>
>>>Pour le type date, je ne peux pas le mettre, j'ai récupéré un projet qui
>>>était démarré comme ca, et cela va poser des problèmes si je le change.
>>>
>>>En fait, ca plante bien sur les dates mais le pire c'est que meme une
>>>requete me renvoyant un jeu d'enregistrement vide plante aussi. (cf :
>>
>>testé
>>
>>>dans QA).
>>>
>>>
>>>
>>>
>>>"Patrice" a écrit :
>>>
>>>
>>>>Etrange...
>>>>
>>>>J'imprimerais le texte exact de la requête pour l'exécuter dans QA (pb
>>
>>dans
>>
>>>>recup_date1 ou recup_date 2 ?)
>>>>
>>>>Essaie de voir aussi si le problème survient quelque soit les lignes de
>>>>table ou si cela survient sur une ligne en particulier (par exemple en
>>>>ajoutant une sélection sur pk). Si cela marche pour une ligne en
>>>>particulier, c'est alors sans doute un problème dans le texte stockée
>>
>>dans
>>
>>>>date_debut pour l'une des lignes de la table.
>>>>
>>>>Par ailleurs, je stockerais les dates sous forme de dates plutôt que
>>
>>sous
>>
>>>>forme de texte...
>>>>
>>>>Patrice
>>>>
>>>>--
>>>>
>>>>"sKiPoU" a écrit dans le message de
>>>>news:
>>>>
>>>>>Bonjour,
>>>>>
>>>>
>>>--------------------------------------------------------------------------
>>>
>>>>---------------
>>>>
>>>>>select * from table
>>>>>where date_debut between convert(smalldatetime,'" & recup_date1 & "')
>>
>>and
>>
>>>>>convert(smalldatetime,'" & recup_date2 & "') "
>>>>



>>>--------------------------------------------------------------------------
>>>



>>>>----------------
>>>>
>>>>>Je souhaite effectuer une requete sur des dates, je récupère les dates
>>
>>en
>>
>>>>>asp sous la forme 'jj/mm/aaaa'.
>>>>>En base, les champs sont de type varchar(10) et donc de type
>>
>>'jj/mm/aaaa'
>>
>>>>>Le problème est que depuis quelques jours j'ai ceci :
>>>>>
>>>>>Microsoft OLE DB Provider for SQL Server error '80040e07'
>>>>>
>>>>>La conversion du type de données CHAR en SMALLMONEY a donné une valeur
>>>>
>>>>hors
>>>>
>>>>>des limites des valeurs monétaires.
>>>>>
>>>>>Bon, je veux bien qu'il y ai des erreurs mais je ne demande et je n'ai
>>
>>pas
>>
>>>>>de type smallmoney.
>>>>>
>>>>>Merci d'avance.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>
>>