Je sais pourquoi je vois cette erreur, c'est parce que certains de mes locationDeletionDate
est '9999-12-31 00: 00: 00.0000000', et l'ajout de 90 jours à le locationDeletionDate
(comme je le fais dans ma requête) provoque l'erreur dans le titre:Ajout d'une valeur à une colonne 'datetime2' a causé un débordement
...WHERE
(bpj.JobStatus = 'Live')
AND (l.locationEffectiveDate <= SYSDATETIME())
AND (dateadd(d,90,l.locationDeletionDate) >= SYSDATETIME())...
Je suppose que ce que je dois est une CASE
conditionnelle dans mon WHERE
-clause pour assurer la date ne sera pas erreur si 90 jours sont ajoutés ? Ou y a-t-il une manière plus élégante?
Pourquoi ne pas simplement ajouter un prédicat à votre clause where? AND l.locationDeletionDate <'9999-01-01' ou quelque chose du genre. Pourquoi utilisez-vous une telle valeur ridiculement grande de toute façon? Je pense que NULL serait plus approprié. –
Je serais d'accord avec @sean pourquoi magasin 9999 dates de toute façon? –