DATEDIFF error message 535, comment le contourner !

Pour ceux qui n’ont pas la chance de travailler avec la version 2016, l’utilisation du DATEDIFF peut provoquer une erreur de dépassement de capacité arithmétique du fait que les calculs sont réalisés sur un entier 32 bits (INT) alors que le système effectue un calcul intermédiaire dont la différence à un moment donné peut dépasser la limite du 32 bits (-2 147 483 648 à 2 147 483 647).
Pour contourner ce problème je vous propose l’UDF suivante que j’ai appelé DATE_DIFF…

Exemple d’utilisation :

SELECT dbo.DATE_DIFF('microsecond', '0001-01-01', '9999-12-31')

Le lien de téléchargement du code


Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
* Le site sur les SGBD relationnels et le SQL : https://sqlpro.developpez.com *
* le blog SQL, SQL Server, SGBDR... sur : https://blog.developpez.com/sqlpro/ *
* Expert Microsoft SQL Server, MVP (Most valuable Professional) depuis 14 ans *
* Entreprise SQL SPOT : modélisation, conseil, audit, optimisation, formation *
* * * * * Enseignant CNAM PACA - ISEN Toulon  -  CESI Aix en Provence * * * * *

Ce contenu a été publié dans scripts SQL, SQL Server, Tips and tricks, avec comme mot(s)-clé(s) , , , , . Vous pouvez le mettre en favoris avec ce permalien.