Maison > base de données > tutoriel mysql > Comment éviter les erreurs de débordement DATEADD lors de la conversion de dates JavaScript volumineuses dans SQL Server 2008 ?

Comment éviter les erreurs de débordement DATEADD lors de la conversion de dates JavaScript volumineuses dans SQL Server 2008 ?

Susan Sarandon
Libérer: 2024-12-17 22:40:11
original
349 Les gens l'ont consulté

How to Avoid DATEADD Overflow Errors When Converting Large JavaScript Dates in SQL Server 2008?

Débordement de DATEADD avec de grands entiers

Les utilisateurs de SQL Server 2008 peuvent rencontrer une « erreur de dépassement arithmétique » lors de la conversion de grandes dates JavaScript en dates SQL à l'aide la fonction DATEADD. L'erreur se produit lorsque la valeur dépasse la taille maximale d'un type de données entier.

La requête incriminée :

DATEADD(MILLISECOND, cast(569337307200000 as bigint) % 1000, DATEADD(SECOND, cast(569337307200000 as bigint) / 1000, '19700101'))
Copier après la connexion

Pour résoudre ce problème, divisez le DATEADD en incréments plus petits. Commencez avec une unité de temps plus grande (secondes, minutes ou heures), puis ajustez en fonction des millisecondes restantes. Évitez d'utiliser des semaines ou des mois car cela implique des calculs de calendrier complexes.

Considérez l'exemple suivant :

-- Handle large durations by subtracting minutes and then remaining milliseconds.

DATEADD(ms, -large_duration_ms%60000, DATEADD(minute, -large_duration_ms/60000, GETDATE()))
Copier après la connexion

Cette technique permet de calculer des heures de début avec des durées extrêmement longues sans erreurs de débordement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal