DATEADD と Bigint による算術オーバーフロー エラーの克服
SQL を利用して JavaScript の日付を SQL の日付に変換する場合、大きすぎるデータを処理するときに複雑さが発生します。データが失われ、算術オーバーフロー例外が発生します。この問題に対処するには、次の SQL ステートメントを検討してください。
DATEADD(MILLISECOND, cast(569337307200000 as bigint) % 1000, DATEADD(SECOND, cast(569337307200000 as bigint) / 1000, '19700101'))
DATEADD を 2 段階に分割し、分などのより大きな時間単位から始めて、必要なミリ秒まで減らすことで、オーバーフローの問題を回避します。カレンダーの計算が必要となるため、月や週に頼ることは避けてください。
たとえば、ミリ秒単位の大きな電流継続時間に基づいて開始時刻を計算する場合を考えてみましょう。
-- two-step process to prevent overflow -- subtract minutes (60000ms) as a first step -- then subtract the remaining milliseconds DATEADD(ms, -large_duration_ms%60000, DATEADD(minute, -large_duration_ms/60000, GETDATE()))
DATEADD をより小さなステップに分割すると、大きなデータ値を効果的に処理し、算術オーバーフロー エラーを解決できます。
以上がSQL で大きなミリ秒値を含む DATEADD を使用する場合の算術オーバーフロー エラーを防ぐにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。