Heim > Datenbank > MySQL-Tutorial > Wie vermeide ich DATEADD-Überlauffehler beim Konvertieren großer JavaScript-Datumsangaben in SQL Server 2008?

Wie vermeide ich DATEADD-Überlauffehler beim Konvertieren großer JavaScript-Datumsangaben in SQL Server 2008?

Susan Sarandon
Freigeben: 2024-12-17 22:40:11
Original
349 Leute haben es durchsucht

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

DATEADD-Überlauf mit großen Ganzzahlen

Benutzer von SQL Server 2008 können beim Konvertieren großer JavaScript-Daten in SQL-Daten mit einem „Arithmetischen Überlauffehler“ auftreten die DATEADD-Funktion. Der Fehler tritt auf, wenn der Wert die maximale Größe eines ganzzahligen Datentyps überschreitet.

Die fehlerhafte Abfrage:

DATEADD(MILLISECOND, cast(569337307200000 as bigint) % 1000, DATEADD(SECOND, cast(569337307200000 as bigint) / 1000, '19700101'))
Nach dem Login kopieren

Um dieses Problem zu beheben, teilen Sie DATEADD in kleinere Inkremente auf. Beginnen Sie mit einer größeren Zeiteinheit (Sekunden, Minuten oder Stunden) und passen Sie sie dann um die verbleibenden Millisekunden an. Vermeiden Sie die Verwendung von Wochen oder Monaten, da dies komplexe Kalenderberechnungen erfordert.

Betrachten Sie das folgende Beispiel:

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

DATEADD(ms, -large_duration_ms%60000, DATEADD(minute, -large_duration_ms/60000, GETDATE()))
Nach dem Login kopieren

Diese Technik ermöglicht die Berechnung von Startzeiten mit extrem langer Dauer ohne Überlauffehler.

Das obige ist der detaillierte Inhalt vonWie vermeide ich DATEADD-Überlauffehler beim Konvertieren großer JavaScript-Datumsangaben in SQL Server 2008?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage