OVH Cloud OVH Cloud

Nettoyage d'historique : erreur format de date

3 réponses
Avatar
gploquin
Bonjour,

Je viens de mettre en place un plan de maintenance pour SQL Server 2005
(SP1/French) pour nettoyer les historiques des sauvegardes et des autres
tâches de maintenance.
Mais à l'exécution de cette tâche, j'obtiens une erreur :

Échec :(-1073548784) L'exécution de la requête « declare @dt datetime select
@dt = cast(N'01/26/2007 03:00:04' as datetime) exec
msdb.dbo.sp_delete_backuphistory @dt
» a échoué avec l'erreur suivante : « Une erreur de dépassement
arithmétique s'est produite lors de la conversion de expression en type de
données datetime. ». Causes possibles de cet échec : problèmes liés à la
requête, propriété « ResultSet » non définie correctement, paramètres non
définis correctement ou connexion non établie correctement.

Ce n'est pas le sp_delete_backuphistory qui est en cause, c'est le le cast :
il semble que le problème soit lié au format de la date '01/26/2007', car si
on lance un cast(N'26/01/2007' as datetime), il n'y a aucun problème.
Or cette date est ajoutée automatiquement par le système dans le script
généré (pas via un getdate, c'est écrit en direct).

Y a-t-il un moyen de contourner ce problème ? Peut-on modifier les ordres de
génération du script ? Ou un correctif ?
Bonne journée !

3 réponses

Avatar
Med Bouchenafa
Ecris ta date au format ISO
'20070126 03:00:04' au lieu de '01/26/2007 03:00:04'
--
Bien cordialement
Med Bouchenafa

"gploquin" wrote in message
news:
Bonjour,

Je viens de mettre en place un plan de maintenance pour SQL Server 2005
(SP1/French) pour nettoyer les historiques des sauvegardes et des autres
tâches de maintenance.
Mais à l'exécution de cette tâche, j'obtiens une erreur :

Échec :(-1073548784) L'exécution de la requête « declare @dt datetime
select
@dt = cast(N'01/26/2007 03:00:04' as datetime) exec
msdb.dbo.sp_delete_backuphistory @dt
» a échoué avec l'erreur suivante : « Une erreur de dépassement
arithmétique s'est produite lors de la conversion de expression en type de
données datetime. ». Causes possibles de cet échec : problèmes liés à la
requête, propriété « ResultSet » non définie correctement, paramètres non
définis correctement ou connexion non établie correctement.

Ce n'est pas le sp_delete_backuphistory qui est en cause, c'est le le cast
:
il semble que le problème soit lié au format de la date '01/26/2007', car
si
on lance un cast(N'26/01/2007' as datetime), il n'y a aucun problème.
Or cette date est ajoutée automatiquement par le système dans le script
généré (pas via un getdate, c'est écrit en direct).

Y a-t-il un moyen de contourner ce problème ? Peut-on modifier les ordres
de
génération du script ? Ou un correctif ?
Bonne journée !




Avatar
gploquin
Malheureusement, ce n'est pas moi qui l'écris, c'est le système.
D'après ce que j'ai pu en voir, au moment d'exécuter la tâche de
maintenance, les scripts SQL sont générés à la volée par SQL Server.
On peut s'en apercevoir en allant dans la vue T-SQL d'une tâche de ce type :
la date du jour y est inscrite "en dur" (et au mauvais format).


"Med Bouchenafa" a écrit :

Ecris ta date au format ISO
'20070126 03:00:04' au lieu de '01/26/2007 03:00:04'
--
Bien cordialement
Med Bouchenafa

"gploquin" wrote in message
news:
> Bonjour,
>
> Je viens de mettre en place un plan de maintenance pour SQL Server 2005
> (SP1/French) pour nettoyer les historiques des sauvegardes et des autres
> tâches de maintenance.
> Mais à l'exécution de cette tâche, j'obtiens une erreur :
>
> Échec :(-1073548784) L'exécution de la requête « declare @dt datetime
> select
> @dt = cast(N'01/26/2007 03:00:04' as datetime) exec
> msdb.dbo.sp_delete_backuphistory @dt
> » a échoué avec l'erreur suivante : « Une erreur de dépassement
> arithmétique s'est produite lors de la conversion de expression en type de
> données datetime. ». Causes possibles de cet échec : problèmes liés à la
> requête, propriété « ResultSet » non définie correctement, paramètres non
> définis correctement ou connexion non établie correctement.
>
> Ce n'est pas le sp_delete_backuphistory qui est en cause, c'est le le cast
> :
> il semble que le problème soit lié au format de la date '01/26/2007', car
> si
> on lance un cast(N'26/01/2007' as datetime), il n'y a aucun problème.
> Or cette date est ajoutée automatiquement par le système dans le script
> généré (pas via un getdate, c'est écrit en direct).
>
> Y a-t-il un moyen de contourner ce problème ? Peut-on modifier les ordres
> de
> génération du script ? Ou un correctif ?
> Bonne journée !
>
>





Avatar
Alexis Molteni
Bonjour,

C'est peut etre lié au compte que vous utilisez pour faire tourner le
services SQL Server ou le SQL Server Agent.

Alexis Molteni

"gploquin" a écrit dans le message de
news:
Malheureusement, ce n'est pas moi qui l'écris, c'est le système.
D'après ce que j'ai pu en voir, au moment d'exécuter la tâche de
maintenance, les scripts SQL sont générés à la volée par SQL Server.
On peut s'en apercevoir en allant dans la vue T-SQL d'une tâche de ce type
:
la date du jour y est inscrite "en dur" (et au mauvais format).


"Med Bouchenafa" a écrit :

Ecris ta date au format ISO
'20070126 03:00:04' au lieu de '01/26/2007 03:00:04'
--
Bien cordialement
Med Bouchenafa

"gploquin" wrote in message
news:
> Bonjour,
>
> Je viens de mettre en place un plan de maintenance pour SQL Server 2005
> (SP1/French) pour nettoyer les historiques des sauvegardes et des
> autres
> tâches de maintenance.
> Mais à l'exécution de cette tâche, j'obtiens une erreur :
>
> Échec :(-1073548784) L'exécution de la requête « declare @dt datetime
> select
> @dt = cast(N'01/26/2007 03:00:04' as datetime) exec
> msdb.dbo.sp_delete_backuphistory @dt
> » a échoué avec l'erreur suivante : « Une erreur de dépassement
> arithmétique s'est produite lors de la conversion de expression en type
> de
> données datetime. ». Causes possibles de cet échec : problèmes liés à
> la
> requête, propriété « ResultSet » non définie correctement, paramètres
> non
> définis correctement ou connexion non établie correctement.
>
> Ce n'est pas le sp_delete_backuphistory qui est en cause, c'est le le
> cast
> :
> il semble que le problème soit lié au format de la date '01/26/2007',
> car
> si
> on lance un cast(N'26/01/2007' as datetime), il n'y a aucun problème.
> Or cette date est ajoutée automatiquement par le système dans le script
> généré (pas via un getdate, c'est écrit en direct).
>
> Y a-t-il un moyen de contourner ce problème ? Peut-on modifier les
> ordres
> de
> génération du script ? Ou un correctif ?
> Bonne journée !
>
>