SQL 2000 – Arithmetic overflow

 
Pour ceux qui ont eu un beau message d’erreur :
 

Server: Msg 8115, Level 16, State 2, Line 1 Arithmetic overflow error converting expression to data type int.

 
Alors que la requête est tout simple :
 

SELECT avg(datepart(year,BirthDate))

FROM [User]

 

 

Il suffit de forcer le type de donnée renvoyé par DATEPART à BigInt. En effet, la somme des années de naissance des 1,5 millions d’utilisateurs renseignés dans ma base dépasse la valeur maximale du type Integer.
 

SELECT avg(cast(datepart(year,BirthDate) AS BIGINT))

FROM [User]

 
 
Voilà une petite info qui pourrait être utile.
 
 
 
 
 

A propos Christophe

Consultant SQL Server Formateur certifié Microsoft MVP SQL Server MCM SQL Server 2008
Cet article a été publié dans SQL Server. Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s